Skip to content

Commit

Permalink
b43: fix ieee80211_rx() context
Browse files Browse the repository at this point in the history
Due to the way it interacts with the networking
stack and other parts of mac80211, ieee80211_rx()
must be called with disabled softirqs.

[1] http://thread.gmane.org/gmane.linux.kernel.wireless.general/39440/focus=40266

Reported-by: Dave Young <hidave.darkstar@gmail.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Johannes Berg authored and John W. Linville committed Oct 12, 2009
1 parent 51f98f1 commit edbfdcc
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/net/wireless/b43/xmit.c
Original file line number Diff line number Diff line change
Expand Up @@ -690,7 +690,10 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr)
}

memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));

local_bh_disable();
ieee80211_rx(dev->wl->hw, skb);
local_bh_enable();

#if B43_DEBUG
dev->rx_count++;
Expand Down

0 comments on commit edbfdcc

Please sign in to comment.