summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/dvm/rx.c
diff options
context:
space:
mode:
authorJohannes Berg2012-12-27 21:43:48 +0100
committerJohannes Berg2013-02-05 14:39:12 +0100
commit2bfb50924c7e92362ac937aef2ab56bc7bd3ca52 (patch)
tree26518070c19eb9cfb38ab48cda31fe16c1235433 /drivers/net/wireless/iwlwifi/dvm/rx.c
parentiwlwifi: don't ack the card state notification (diff)
downloadkernel-qcow2-linux-2bfb50924c7e92362ac937aef2ab56bc7bd3ca52.tar.gz
kernel-qcow2-linux-2bfb50924c7e92362ac937aef2ab56bc7bd3ca52.tar.xz
kernel-qcow2-linux-2bfb50924c7e92362ac937aef2ab56bc7bd3ca52.zip
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>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/dvm/rx.c')
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/rx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/rx.c b/drivers/net/wireless/iwlwifi/dvm/rx.c
index e8d5b90abf5c..a4eed2055fdb 100644
--- a/drivers/net/wireless/iwlwifi/dvm/rx.c
+++ b/drivers/net/wireless/iwlwifi/dvm/rx.c
@@ -790,7 +790,7 @@ static void iwlagn_pass_packet_to_mac80211(struct iwl_priv *priv,
memcpy(IEEE80211_SKB_RXCB(skb), stats, sizeof(*stats));
- ieee80211_rx(priv->hw, skb);
+ ieee80211_rx_ni(priv->hw, skb);
}
static u32 iwlagn_translate_rx_status(struct iwl_priv *priv, u32 decrypt_in)