aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/rx.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 50c0803a63ba..29a582df6371 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2286,6 +2286,9 @@ static void ieee80211_rx_cooked_monitor(struct ieee80211_rx_data *rx,
2286 struct net_device *prev_dev = NULL; 2286 struct net_device *prev_dev = NULL;
2287 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); 2287 struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
2288 2288
2289 if (status->flag & RX_FLAG_INTERNAL_CMTR)
2290 goto out_free_skb;
2291
2289 if (skb_headroom(skb) < sizeof(*rthdr) && 2292 if (skb_headroom(skb) < sizeof(*rthdr) &&
2290 pskb_expand_head(skb, sizeof(*rthdr), 0, GFP_ATOMIC)) 2293 pskb_expand_head(skb, sizeof(*rthdr), 0, GFP_ATOMIC))
2291 goto out_free_skb; 2294 goto out_free_skb;
@@ -2344,6 +2347,7 @@ static void ieee80211_rx_cooked_monitor(struct ieee80211_rx_data *rx,
2344 } else 2347 } else
2345 goto out_free_skb; 2348 goto out_free_skb;
2346 2349
2350 status->flag |= RX_FLAG_INTERNAL_CMTR;
2347 return; 2351 return;
2348 2352
2349 out_free_skb: 2353 out_free_skb: