linux/drivers/net/wireless/cw1200
Solomon Peachy 85ba8f529c cw1200: Prevent a lock-related hang in the cw1200_spi driver
The cw1200_spi driver tries to mirror the cw1200_sdio driver's lock
API, which relies on sdio_claim_host/sdio_release_host to serialize
hardware operations across multiple threads.

Unfortunately the implementation was flawed, as it lacked a way to wake
up the lock requestor when there was contention, often resulting in a
hang.

This problem was uncovered while trying to fix the
spi-transfers-in-interrupt-context BUG() corrected in the previous
patch.  Many thanks to Dave Sizeburns for his assistance in fixing this.

Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2013-09-09 14:40:54 -04:00
..
bh.c cw1200: When debug is enabled, display all wakeup conditions for the wait_event_interruptible_timeout() call. 2013-08-28 13:58:29 -04:00
bh.h
cw1200_sdio.c cw1200: Fix an assorted pile of checkpatch warnings. 2013-06-11 12:48:10 -04:00
cw1200_spi.c cw1200: Prevent a lock-related hang in the cw1200_spi driver 2013-09-09 14:40:54 -04:00
cw1200.h cw1200: Fix up a large pile of sparse warnings 2013-06-24 14:44:24 -04:00
debug.c cw1200: Eliminate the ETF debug/engineering code. 2013-06-11 12:48:10 -04:00
debug.h cw1200: Remove "ITP" debug subsystem. 2013-06-11 12:48:09 -04:00
fwio.c cw1200: Don't perform SPI transfers in interrupt context 2013-09-09 14:40:53 -04:00
fwio.h
hwbus.h cw1200: Don't perform SPI transfers in interrupt context 2013-09-09 14:40:53 -04:00
hwio.c cw1200: Don't perform SPI transfers in interrupt context 2013-09-09 14:40:53 -04:00
hwio.h cw1200: Fix up a large pile of sparse warnings 2013-06-24 14:44:24 -04:00
Kconfig cw1200: Eliminate the ETF debug/engineering code. 2013-06-11 12:48:10 -04:00
main.c cw1200: Display the correct default reference clock. 2013-08-28 13:58:28 -04:00
Makefile cw1200: Remove "ITP" debug subsystem. 2013-06-11 12:48:09 -04:00
pm.c
pm.h
queue.c cw1200: Fix up a large pile of sparse warnings 2013-06-24 14:44:24 -04:00
queue.h
scan.c
scan.h
sta.c cw1200: Fix spurious BUG_ON() trigger when starting AP mode. 2013-08-05 14:46:07 -04:00
sta.h
txrx.c cw1200: Fix OOPS in monitor mode 2013-07-22 16:04:08 -04:00
txrx.h
wsm.c treewide: Fix typo in printk 2013-08-20 12:44:03 +02:00
wsm.h cw1200: Fix incorrect endianness annotation in a header field 2013-07-22 16:54:44 -04:00