iwlwifi: use threaded interrupt handler
authorJohannes Berg <johannes.berg@intel.com>
Thu, 27 Dec 2012 20:43:48 +0000 (21:43 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 5 Feb 2013 13:39:12 +0000 (14:39 +0100)
commit2bfb50924c7e92362ac937aef2ab56bc7bd3ca52
tree26518070c19eb9cfb38ab48cda31fe16c1235433
parentc9f7a8ab7792b48259af6e94706a5d02dd74caef
iwlwifi: use threaded interrupt handler

With new transports coming up, move to threaded
interrupt handling now. This has the advantage
that we can use the same locking scheme with all
different transports we may need to implement.

Note that the TX path obviously still runs in a
tasklet, so some spin_lock() calls need to change
to spin_lock_bh() calls to properly lock out the
TX path.

In my test on a Calpella platform this has no
impact on throughput or latency.

Also add lockdep annotations to avoid lockups due
to catch sending synchronous commands or using
locks that connect with them from the irq thread.

Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/iwlwifi/dvm/rx.c
drivers/net/wireless/iwlwifi/dvm/sta.c
drivers/net/wireless/iwlwifi/dvm/tx.c
drivers/net/wireless/iwlwifi/iwl-op-mode.h
drivers/net/wireless/iwlwifi/iwl-trans.h
drivers/net/wireless/iwlwifi/mvm/rx.c
drivers/net/wireless/iwlwifi/mvm/tx.c
drivers/net/wireless/iwlwifi/pcie/internal.h
drivers/net/wireless/iwlwifi/pcie/rx.c
drivers/net/wireless/iwlwifi/pcie/trans.c
drivers/net/wireless/iwlwifi/pcie/tx.c