diff options
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 f195705146bd..25a669c86e14 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -2442,6 +2442,18 @@ void __ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
2442 | return; | 2442 | return; |
2443 | } | 2443 | } |
2444 | 2444 | ||
2445 | /* | ||
2446 | * If we're suspending, it is possible although not too likely | ||
2447 | * that we'd be receiving frames after having already partially | ||
2448 | * quiesced the stack. We can't process such frames then since | ||
2449 | * that might, for example, cause stations to be added or other | ||
2450 | * driver callbacks be invoked. | ||
2451 | */ | ||
2452 | if (unlikely(local->quiescing || local->suspended)) { | ||
2453 | kfree_skb(skb); | ||
2454 | return; | ||
2455 | } | ||
2456 | |||
2445 | if (status->flag & RX_FLAG_HT) { | 2457 | if (status->flag & RX_FLAG_HT) { |
2446 | /* rate_idx is MCS index */ | 2458 | /* rate_idx is MCS index */ |
2447 | if (WARN_ON(status->rate_idx < 0 || | 2459 | if (WARN_ON(status->rate_idx < 0 || |