summaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-08-24 12:25:44 +0200
committerIngo Molnar <mingo@elte.hu>2009-08-24 12:25:54 +0200
commit5f9ece02401116b29eb04396b99ea092acb75dd8 (patch)
treee10386e2dc63c275646b4eb0bed857da7bf86c6a /net/mac80211/rx.c
parent9f51e24ee8b5a1595b6a5ac0c2be278a16488e75 (diff)
parent422bef879e84104fee6dc68ded0e371dbeb5f88e (diff)
downloadkernel-crypto-5f9ece02401116b29eb04396b99ea092acb75dd8.tar.gz
kernel-crypto-5f9ece02401116b29eb04396b99ea092acb75dd8.tar.xz
kernel-crypto-5f9ece02401116b29eb04396b99ea092acb75dd8.zip
Merge commit 'v2.6.31-rc7' into x86/cleanups
Merge reason: we were on -rc1 before - go up to -rc7 Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c12
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 ||