Messages in this thread | | | Subject | Re: 2.5.63: 'Debug: sleeping function called from illegal context at mm/slab.c:1617' | From | Benjamin Herrenschmidt <> | Date | 02 Mar 2003 10:53:45 +0100 |
| |
On Sun, 2003-03-02 at 02:26, Alan Cox wrote: > On Sat, 2003-03-01 at 21:05, Dr. David Alan Gilbert wrote: > > Hi, > > 2.5.63 had a good go at trying to boot for me; the only error during > > boot was 'Debug: sleeping function called from illegal context at > > mm/slab.c:1617' during the IDE startup. > > Known problem. Its a bug in the request_irq code on x86. IDE just > happens to be a victim of it.
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.
You really think request_irq should be safe to be called from irq context ?
I tend to think IDE is at fault here. It doesn't seem to be a sane requirement to me to have request_irq be called at IRQ time. It's rather easy to fix it's kmalloc to be GFP_ATOMIC instead of GFP_KERNEL, but what about /proc stuff ? And the day we want to fit IRQs in the driver model, that will probably involve taking a semaphore as well here and do other IRQ tree management task that are definitely not something we want to do at IRQ time.
Ben. - 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/
| |