iwlagn: avoid sleep in softirq context
authorJohn W. Linville <linville@tuxdriver.com>
Thu, 30 Oct 2008 18:12:21 +0000 (14:12 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 6 Nov 2008 21:37:09 +0000 (16:37 -0500)
commit964d2777438bf7687324243d38ade538d9bbfe3c
tree53a738873641c73899846298d0a9b3351697d5fa
parent502c12e1ef14967e08dabb04c674cf0f000e8f7e
iwlagn: avoid sleep in softirq context

__ieee80211_tasklet_handler -> __ieee80211_rx ->
__ieee80211_rx_handle_packet -> ieee80211_invoke_rx_handlers ->
ieee80211_rx_h_decrypt -> ieee80211_crypto_tkip_decrypt ->
ieee80211_tkip_decrypt_data -> iwl4965_mac_update_tkip_key ->
iwl_scan_cancel_timeout -> msleep

Ooops!

Avoid the sleep by changing iwl_scan_cancel_timeout with
iwl_scan_cancel and simply returning on failure if the scan persists.
This will cause hardware decryption to fail and we'll handle a few more
frames with software decryption.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-agn.c