projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
59336e0
)
wifi: cfg80211: move A-MSDU check in ieee80211_data_to_8023_exthdr
author
Felix Fietkau
<nbd@nbd.name>
Mon, 13 Feb 2023 10:08:51 +0000
(11:08 +0100)
committer
Johannes Berg
<johannes.berg@intel.com>
Tue, 14 Feb 2023 11:25:01 +0000
(12:25 +0100)
When parsing the outer A-MSDU header, don't check for inner bridge tunnel
or RFC1042 headers. This is handled by ieee80211_amsdu_to_8023s already.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link:
https://lore.kernel.org/r/20230213100855.34315-1-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/wireless/util.c
patch
|
blob
|
history
diff --git
a/net/wireless/util.c
b/net/wireless/util.c
index 38d3b434c18c8d3104d0548969e0e647c3c403b5..430962f97e74adeb6334a2957b8efcd270d32825 100644
(file)
--- a/
net/wireless/util.c
+++ b/
net/wireless/util.c
@@
-631,8
+631,9
@@
int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr,
break;
}
- if (likely(skb_copy_bits(skb, hdrlen, &payload, sizeof(payload)) == 0 &&
- ((!is_amsdu && ether_addr_equal(payload.hdr, rfc1042_header) &&
+ if (likely(!is_amsdu &&
+ skb_copy_bits(skb, hdrlen, &payload, sizeof(payload)) == 0 &&
+ ((ether_addr_equal(payload.hdr, rfc1042_header) &&
payload.proto != htons(ETH_P_AARP) &&
payload.proto != htons(ETH_P_IPX)) ||
ether_addr_equal(payload.hdr, bridge_tunnel_header)))) {