Can not free irq 0

Mulyadi Santosa mulyadi.santosa at gmail.com
Sun Aug 28 21:01:43 EDT 2011


Hi :)

On Sun, Aug 28, 2011 at 17:13, Parmenides <mobile.parmenides at gmail.com> wrote:
> The irq 8 is really occupied by rtc and its initial flags is set as
> IRQF_DISABLED.

Ah, great you found it :) I could only guess it...

>At the beginning, I think the irq's registration is
> invoked in drivers/char/rtc.c, but this is not really the case. Then,
> I have to find where the registration is done. I modified the
> request_irq() to the other function name, and compiled the kernel.
> Checking the error messages from gcc I found that the actual
> registration is done in drivers/rtc/rtc-cmos.c like this:
>
>                retval = request_irq(rtc_irq, rtc_cmos_int_handler,
>                                IRQF_DISABLED, dev_name(&cmos_rtc.rtc->dev),
>                                cmos_rtc.rtc);

I think it is somewhat make sense to use IRQF_DISABLED here, since
this kind of irq should ask for exclusive line and none other should
ever bug with it. That way RTC handling is handled as fast and as
efficiently as possible.


> But I don't think this is an ideal solution to share irq owing to the
> modification to kernel code directly. So, I wonder whether there is
> any EXPORTed funciton which can modify the flags of an existing
> interrupt handler.

I don't think there is any, but I could be wrong here....

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com



More information about the Kernelnewbies mailing list