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