diff options
author | Johannes Berg <johannes.berg@intel.com> | 2017-06-08 08:14:40 -0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2017-06-08 08:14:45 -0400 |
commit | a43e61842ec55baa486d60eed2a19af67ba78b9f (patch) | |
tree | 6c3c93f19e3933273b73b9edd16edc146ab18527 /net/wireless/util.c | |
parent | 5d473fedd17ae3a9f92fb35551e307d01459ea6a (diff) | |
parent | 50dffe7fad6c156c2928e45c19ff7b86eb951f4c (diff) |
Merge remote-tracking branch 'net-next/master' into mac80211-next
This brings in commit 7a7c0a6438b8 ("mac80211: fix TX aggregation
start/stop callback race") to allow the follow-up cleanup.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless/util.c')
-rw-r--r-- | net/wireless/util.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c index a10d5c7bdf63..96613fe2c6b1 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c | |||
@@ -454,6 +454,8 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr, | |||
454 | if (iftype == NL80211_IFTYPE_MESH_POINT) | 454 | if (iftype == NL80211_IFTYPE_MESH_POINT) |
455 | skb_copy_bits(skb, hdrlen, &mesh_flags, 1); | 455 | skb_copy_bits(skb, hdrlen, &mesh_flags, 1); |
456 | 456 | ||
457 | mesh_flags &= MESH_FLAGS_AE; | ||
458 | |||
457 | switch (hdr->frame_control & | 459 | switch (hdr->frame_control & |
458 | cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) { | 460 | cpu_to_le16(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) { |
459 | case cpu_to_le16(IEEE80211_FCTL_TODS): | 461 | case cpu_to_le16(IEEE80211_FCTL_TODS): |
@@ -469,9 +471,9 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr, | |||
469 | iftype != NL80211_IFTYPE_STATION)) | 471 | iftype != NL80211_IFTYPE_STATION)) |
470 | return -1; | 472 | return -1; |
471 | if (iftype == NL80211_IFTYPE_MESH_POINT) { | 473 | if (iftype == NL80211_IFTYPE_MESH_POINT) { |
472 | if (mesh_flags & MESH_FLAGS_AE_A4) | 474 | if (mesh_flags == MESH_FLAGS_AE_A4) |
473 | return -1; | 475 | return -1; |
474 | if (mesh_flags & MESH_FLAGS_AE_A5_A6) { | 476 | if (mesh_flags == MESH_FLAGS_AE_A5_A6) { |
475 | skb_copy_bits(skb, hdrlen + | 477 | skb_copy_bits(skb, hdrlen + |
476 | offsetof(struct ieee80211s_hdr, eaddr1), | 478 | offsetof(struct ieee80211s_hdr, eaddr1), |
477 | tmp.h_dest, 2 * ETH_ALEN); | 479 | tmp.h_dest, 2 * ETH_ALEN); |
@@ -487,9 +489,9 @@ int ieee80211_data_to_8023_exthdr(struct sk_buff *skb, struct ethhdr *ehdr, | |||
487 | ether_addr_equal(tmp.h_source, addr))) | 489 | ether_addr_equal(tmp.h_source, addr))) |
488 | return -1; | 490 | return -1; |
489 | if (iftype == NL80211_IFTYPE_MESH_POINT) { | 491 | if (iftype == NL80211_IFTYPE_MESH_POINT) { |
490 | if (mesh_flags & MESH_FLAGS_AE_A5_A6) | 492 | if (mesh_flags == MESH_FLAGS_AE_A5_A6) |
491 | return -1; | 493 | return -1; |
492 | if (mesh_flags & MESH_FLAGS_AE_A4) | 494 | if (mesh_flags == MESH_FLAGS_AE_A4) |
493 | skb_copy_bits(skb, hdrlen + | 495 | skb_copy_bits(skb, hdrlen + |
494 | offsetof(struct ieee80211s_hdr, eaddr1), | 496 | offsetof(struct ieee80211s_hdr, eaddr1), |
495 | tmp.h_source, ETH_ALEN); | 497 | tmp.h_source, ETH_ALEN); |