diff options
Diffstat (limited to 'package/kernel/mac80211/patches/387-mac80211-always-account-for-A-MSDU-header-changes.patch')
-rw-r--r-- | package/kernel/mac80211/patches/387-mac80211-always-account-for-A-MSDU-header-changes.patch | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/package/kernel/mac80211/patches/387-mac80211-always-account-for-A-MSDU-header-changes.patch b/package/kernel/mac80211/patches/387-mac80211-always-account-for-A-MSDU-header-changes.patch deleted file mode 100644 index 47942116bc..0000000000 --- a/package/kernel/mac80211/patches/387-mac80211-always-account-for-A-MSDU-header-changes.patch +++ /dev/null @@ -1,51 +0,0 @@ -From: Johannes Berg <johannes.berg@intel.com> -Date: Thu, 30 Aug 2018 10:55:49 +0200 -Subject: [PATCH] mac80211: always account for A-MSDU header changes - -In the error path of changing the SKB headroom of the second -A-MSDU subframe, we would not account for the already-changed -length of the first frame that just got converted to be in -A-MSDU format and thus is a bit longer now. - -Fix this by doing the necessary accounting. - -It would be possible to reorder the operations, but that would -make the code more complex (to calculate the necessary pad), -and the headroom expansion should not fail frequently enough -to make that worthwhile. - -Fixes: 6e0456b54545 ("mac80211: add A-MSDU tx support") -Signed-off-by: Johannes Berg <johannes.berg@intel.com> -Acked-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> -Signed-off-by: Johannes Berg <johannes.berg@intel.com> ---- - ---- a/net/mac80211/tx.c -+++ b/net/mac80211/tx.c -@@ -3232,7 +3232,7 @@ static bool ieee80211_amsdu_aggregate(st - - if (!ieee80211_amsdu_realloc_pad(local, skb, sizeof(rfc1042_header) + - 2 + pad)) -- goto out; -+ goto out_recalc; - - ret = true; - data = skb_push(skb, ETH_ALEN + 2); -@@ -3249,11 +3249,13 @@ static bool ieee80211_amsdu_aggregate(st - head->data_len += skb->len; - *frag_tail = skb; - -- flow->backlog += head->len - orig_len; -- tin->backlog_bytes += head->len - orig_len; -- -- fq_recalc_backlog(fq, tin, flow); -+out_recalc: -+ if (head->len != orig_len) { -+ flow->backlog += head->len - orig_len; -+ tin->backlog_bytes += head->len - orig_len; - -+ fq_recalc_backlog(fq, tin, flow); -+ } - out: - fq->memory_usage += head->truesize - orig_truesize; - |