diff options
author | David S. Miller <davem@davemloft.net> | 2009-07-30 10:35:45 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-07-30 10:35:45 -0700 |
commit | a1b97440eec0ea3e53183cde8fe82ff8c1ffb091 (patch) | |
tree | e634dc66b0094cf26281704cce56d5117b0a15f9 /net/mac80211/rx.c | |
parent | 27fed4175acf81ddd91d9a4ee2fd298981f60295 (diff) | |
parent | 89c3a8aca28e6d57f2ae945d97858a372d624b81 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r-- | net/mac80211/rx.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index de5bba7f910..0936fc24942 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -2453,6 +2453,18 @@ void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb, return; } + /* + * If we're suspending, it is possible although not too likely + * that we'd be receiving frames after having already partially + * quiesced the stack. We can't process such frames then since + * that might, for example, cause stations to be added or other + * driver callbacks be invoked. + */ + if (unlikely(local->quiescing || local->suspended)) { + kfree_skb(skb); + return; + } + if (status->flag & RX_FLAG_HT) { /* rate_idx is MCS index */ if (WARN_ON(status->rate_idx < 0 || |