[2.6.22] edac: sleeping function called from invalid context

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
as soon as I enable parity check on PCI bus (with polling - EDAC_POLL),
the following warning is triggered:

EDAC MC: Ver: 2.0.1 Jul 13 2007
BUG: sleeping function called from invalid context at /home/kronos/src/linux-2.6.git/kernel/rwsem.c:20
in_atomic():0, irqs_disabled():1
INFO: lockdep is turned off.
irq event stamp: 0
hardirqs last  enabled at (0): [<00000000>] 0x0
hardirqs last disabled at (0): [<c0120063>] copy_process+0x363/0x11e8
softirqs last  enabled at (0): [<c0120063>] copy_process+0x363/0x11e8
softirqs last disabled at (0): [<00000000>] 0x0
 [<c0134fb2>] down_read+0x15/0x49
 [<c02f4669>] schedule_timeout+0x79/0x8d
 [<c01deef0>] pci_get_subsys+0x68/0xea
 [<c01298a4>] process_timeout+0x0/0x5
 [<c01def88>] pci_get_device+0x16/0x19
 [<fa4b98cd>] edac_kernel_thread+0x94/0x10c [edac_mc]
 [<fa4b9839>] edac_kernel_thread+0x0/0x10c [edac_mc]
 [<c0132264>] kthread+0x38/0x60
 [<c013222c>] kthread+0x0/0x60
 [<c0104ae7>] kernel_thread_helper+0x7/0x10
 =======================

The warning is caused by the fact that do_pci_parity_check() calls
edac_pci_dev_parity_iterator() with interrupts disabled and
pci_get_device acquires pci_bus_sem (via pci_get_subsys).


Luca
-- 
"La mia teoria scientifica preferita e` quella secondo la quale gli 
 anelli di Saturno sarebbero interamente composti dai bagagli andati 
 persi nei viaggi aerei." -- Mark Russel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux