linux/include
Johannes Berg 4e6045f134 workqueue: debug flushing deadlocks with lockdep
In the following scenario:

code path 1:
  my_function() -> lock(L1); ...; flush_workqueue(); ...

code path 2:
  run_workqueue() -> my_work() -> ...; lock(L1); ...

you can get a deadlock when my_work() is queued or running
but my_function() has acquired L1 already.

This patch adds a pseudo-lock to each workqueue to make lockdep
warn about this scenario.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Acked-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-19 11:53:38 -07:00
..
acpi
asm-alpha remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-arm remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-arm26 softlockup: make asm/irq_regs.h available on every platform 2007-10-17 08:42:47 -07:00
asm-avr32 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-blackfin remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-cris remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-frv remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-generic bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-h8300 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-ia64 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-m32r remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-m68k remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-m68knommu remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-mips remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-parisc remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-powerpc remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-ppc Replace __attribute_pure__ with __pure 2007-10-18 14:37:32 -07:00
asm-s390 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-sh remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-sh64 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-sparc remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-sparc64 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-um remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-v850 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-x86 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-xtensa remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
crypto
keys KEYS: Make request_key() and co fundamentally asynchronous 2007-10-17 08:42:57 -07:00
linux workqueue: debug flushing deadlocks with lockdep 2007-10-19 11:53:38 -07:00
math-emu
media
mtd
net [IPSEC]: Rename mode to outer_mode and add inner_mode 2007-10-17 21:35:51 -07:00
pcmcia pcmcia: use DMA_MASK_NONE for the default for all pcmcia devices 2007-10-16 09:42:50 -07:00
rdma
rxrpc
scsi do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00
sound [ALSA] version 1.0.15 2007-10-16 16:57:46 +02:00
video pm2fb: hardware cursor support for the Permedia2 2007-10-16 09:43:18 -07:00
xen xen: fix incorrect vcpu_register_vcpu_info hypercall argument 2007-10-16 11:51:31 -07:00
Kbuild do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00