kernel BUG at kernel/posix-cpu-timers.c:1389!

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Mon Nov 30 08:21:16 EST 2009


On Mon, Nov 02, 2009 at 04:54:41PM +0000, Russell King - ARM Linux wrote:
> On Mon, Nov 02, 2009 at 05:47:57PM +0100, Nicolas Ferre wrote:
> > in arch/arm/mach-at91/at91sam926x_time.c +125
> >  .flags = IRQF_SHARED | IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
> > 
> > IRQF_DISABLED is positionned. But on the other hand, I saw in the kernel
> > booting messages that:
> > "IRQ 1/rtc0: IRQF_DISABLED is not guaranteed on shared IRQs"
> > 
> > What does this mean ? what is the difference with former way of managing
> > shared interrupts ?
> 
> If the first IRQ action which is run was registered without IRQF_DISABLED
> the entire set will be run without interrupts disabled.
... unless one of the handlers enables irqs, so all bets are off for all
but the first handler.
 
> > And above all, what is the proper way to set an IRQ on a shared
> > interrupt line ?
> 
> The only real solution is to ensure that all requesters use IRQF_DISABLED.
Back to the original problem: can you provide the contents of
/proc/interrupts and the output of dmesg?

I once saw that an oops containing the last time and location when irqs
where enabled and disabled.  That would be great here.  I don't know
off-hand where to find a patch and it doesn't seem to be supported in
mainline.  I will come back on this.

Best regards
Uwe

-- 
Pengutronix e.K.                              | Uwe Kleine-König            |
Industrial Linux Solutions                    | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list