Re: 2.5.63: 'Debug: sleeping function called from illegal context

Alan Cox (alan@lxorguk.ukuu.org.uk)
02 Mar 2003 14:21:36 +0000


On Sun, 2003-03-02 at 12:22, Benjamin Herrenschmidt wrote:
> > Well... it's a bug in _all_ archs. They (almost) all call the proc
> > stuff from request_irq, and worse, on x86, I think, has the
> > kmalloc inside request_irq changed to GFP_ATOMIC.
>
> I meant "Only" x86 does GFP_ATOMIC

The IDE layer needs to obtain the IRQ with interrupts disabled. It
isnt alone in that either. I can't guarantee to mask the IRQ
because not all supported hardware has working irq masking.
disable/enable_irq on unallocated interrupts is undefined, and
does not work on at least one supported platform at all.

Unfortunately ten years ago someone created 'register_and_activate_irq'
calling it 'register_irq', and it hasn't yet been fixed.

So its up to the arch maintainers to fix it, or they don't
get IDE support 8)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/