diff options
Diffstat (limited to 'package/mac80211/patches/580-tx_status_optimization.patch')
-rw-r--r-- | package/mac80211/patches/580-tx_status_optimization.patch | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/package/mac80211/patches/580-tx_status_optimization.patch b/package/mac80211/patches/580-tx_status_optimization.patch deleted file mode 100644 index 34eeff2f1..000000000 --- a/package/mac80211/patches/580-tx_status_optimization.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- a/net/mac80211/status.c -+++ b/net/mac80211/status.c -@@ -171,7 +171,7 @@ void ieee80211_tx_status(struct ieee8021 - struct net_device *prev_dev = NULL; - struct sta_info *sta, *tmp; - int retry_count = -1, i; -- bool injected; -+ bool send_to_cooked; - - for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) { - /* the HW cannot have attempted that rate */ -@@ -296,11 +296,15 @@ void ieee80211_tx_status(struct ieee8021 - /* this was a transmitted frame, but now we want to reuse it */ - skb_orphan(skb); - -+ /* Need to make a copy before skb->cb gets cleared */ -+ send_to_cooked = !!(info->flags & IEEE80211_TX_CTL_INJECTED) || -+ (type != IEEE80211_FTYPE_DATA); -+ - /* - * This is a bit racy but we can avoid a lot of work - * with this test... - */ -- if (!local->monitors && !local->cooked_mntrs) { -+ if (!local->monitors && (!send_to_cooked || !local->cooked_mntrs)) { - dev_kfree_skb(skb); - return; - } -@@ -345,9 +349,6 @@ void ieee80211_tx_status(struct ieee8021 - /* for now report the total retry_count */ - rthdr->data_retries = retry_count; - -- /* Need to make a copy before skb->cb gets cleared */ -- injected = !!(info->flags & IEEE80211_TX_CTL_INJECTED); -- - /* XXX: is this sufficient for BPF? */ - skb_set_mac_header(skb, 0); - skb->ip_summed = CHECKSUM_UNNECESSARY; -@@ -362,8 +363,7 @@ void ieee80211_tx_status(struct ieee8021 - continue; - - if ((sdata->u.mntr_flags & MONITOR_FLAG_COOK_FRAMES) && -- !injected && -- (type == IEEE80211_FTYPE_DATA)) -+ !send_to_cooked) - continue; - - if (prev_dev) { |