Alan 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. > > I would call it an IDE bug: request_irq is not atomic, there are dozends of kmalloc(GFP_KERNEL) calls in the implementation. And on some archs it might be impossible to implement it without sleeping - e.g. on a NUMA arch an IPI to the right node could be necessary. What about fixing ide? If ide can't handle early interrupts, then it can use disable_irq(); request_irq(); spin_lock_irq(&ide_lock); do_setup(); spin_unlock_irq(&ide_lock); enable_irq(); I've attached a proposal - what do you think? -- Manfred