Thread (7 messages) 7 messages, 5 authors, 2009-11-30

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

From: Uwe Kleine-König <hidden>
Date: 2009-11-30 13:21:16

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:
quoted
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.
 
quoted
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/  |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help