diff options
Diffstat (limited to 'package/mac80211/patches/580-mac80211_rxdata_fix.patch')
-rw-r--r-- | package/mac80211/patches/580-mac80211_rxdata_fix.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/package/mac80211/patches/580-mac80211_rxdata_fix.patch b/package/mac80211/patches/580-mac80211_rxdata_fix.patch deleted file mode 100644 index 5d9756247..000000000 --- a/package/mac80211/patches/580-mac80211_rxdata_fix.patch +++ /dev/null @@ -1,72 +0,0 @@ ---- a/net/mac80211/rx.c -+++ b/net/mac80211/rx.c -@@ -2348,22 +2348,6 @@ static void __ieee80211_rx_handle_packet - sdata->vif.type == NL80211_IFTYPE_AP_VLAN) - continue; - -- rx.sta = sta_info_get(sdata, hdr->addr2); -- -- rx.flags |= IEEE80211_RX_RA_MATCH; -- prepares = prepare_for_handlers(sdata, &rx, hdr); -- -- if (!prepares) -- continue; -- -- if (status->flag & RX_FLAG_MMIC_ERROR) { -- rx.sdata = sdata; -- if (rx.flags & IEEE80211_RX_RA_MATCH) -- ieee80211_rx_michael_mic_report(hdr, -- &rx); -- continue; -- } -- - /* - * frame is destined for this interface, but if it's - * not also for the previous one we handle that after -@@ -2375,6 +2359,22 @@ static void __ieee80211_rx_handle_packet - continue; - } - -+ rx.sta = sta_info_get(prev, hdr->addr2); -+ -+ rx.flags |= IEEE80211_RX_RA_MATCH; -+ prepares = prepare_for_handlers(prev, &rx, hdr); -+ -+ if (!prepares) -+ goto next; -+ -+ if (status->flag & RX_FLAG_MMIC_ERROR) { -+ rx.sdata = prev; -+ if (rx.flags & IEEE80211_RX_RA_MATCH) -+ ieee80211_rx_michael_mic_report(hdr, -+ &rx); -+ goto next; -+ } -+ - /* - * frame was destined for the previous interface - * so invoke RX handlers for it -@@ -2387,11 +2387,22 @@ static void __ieee80211_rx_handle_packet - "multicast frame for %s\n", - wiphy_name(local->hw.wiphy), - prev->name); -- continue; -+ goto next; - } - ieee80211_invoke_rx_handlers(prev, &rx, skb_new, rate); -+next: - prev = sdata; - } -+ -+ if (prev) { -+ rx.sta = sta_info_get(prev, hdr->addr2); -+ -+ rx.flags |= IEEE80211_RX_RA_MATCH; -+ prepares = prepare_for_handlers(prev, &rx, hdr); -+ -+ if (!prepares) -+ prev = NULL; -+ } - } - if (prev) - ieee80211_invoke_rx_handlers(prev, &rx, skb, rate); |