eata irq abuse (was: Re: Linux 2.5.60)
Quoted 1 line · Zephaniah
kernel BUG at
mm/slab.c:1102!
Slab notices that a function that expects enabled local interrupts is called with disabled local interrupts.
Quoted 2 lines
Call Trace: [<c014a3b3>] do_tune_cpucache+0x83/0x240
do_tune_cpucache:
the function call smp_call_function(), and that is only permitted with enabled local interrupts. The complain is correct.
Quoted 3 lines
[<c014a300>] do_ccpupdate_local+0x0/0x30 [<c014a5c1>] enable_cpucache+0x51/0x80 [<c0148ea5>] kmem_cache_create+0x4a5/0x560
Within kmem_cache_create. kmem_cache_create checks for in_interrupt(), thus someone probably does
spin_lock_irqsave(); kmem_cache_create();
Quoted 1 line
[<
c0285dd2>]scsi_setup_command_freelist+0xa2/0x130
calls kmem_cache_create()
Quoted 1 line
[<
c02887e0>]scsi_register+0x3c0/0x660
calls scsi_setup_command_freelist
Quoted 1 line
[<
c02919a1>]get_pci_dev+0x31/0x50
?? probably stale
Quoted 1 line
[<
c0291df2>]port_detect+0x3c2/0xe50
Do you have an eata scsi controller?
Ugs.eata2x_detect():
* spin_lock_irqsave();
* calls port_detect();
* * spin_unlock();
* * scsi_register.
Eata maintainers: Is that necessary?
Why do the interrupts remain disabled across scsi_register? Is that a bug workaround, or an oversight?
I'd use
spin_unlock_irq(); scsi_register(); spin_lock_irq();
--
Manfred
Quoted 3 lines · Manfred Spraul
Quoted 1 line
[<
c0291df2>]port_detect+0x3c2/0xe50Do you have an eata scsi controller?
Yes I do, does exactly what I need most of the time.
The problem goes away if I compile SCSI as modules, however it happens when I try to load the modules, so..
Anything I can do to help?
Zephaniah E. Hull.
Signature · 7 lines
1024D/E65A7801 Zephaniah E. Hull <[email protected]> 92ED 94E4 B1E6 3624 226D 5727 4453 008B E65A 7801 CCs of replies from mailing lists are requested. "This system operates under martial law. The constitution is suspended. You have no rights except as declared by the area commander. Violators will be shot. Repeat violators will be repeatedly shot...." -from "A_W_O_L"