summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-11-20 11:28:27 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-11-25 16:50:12 +0100
commit051a41fa4ee14f5c39668f0980973b9a195de560 (patch)
tree1914387ccce13a087e1a1a6657c7cacaedbb5d6c /net/mac80211
parent9f16d84ad73ea04145a5dc85c8f1067915b37eea (diff)
downloadlinux-051a41fa4ee14f5c39668f0980973b9a195de560.tar.gz
linux-051a41fa4ee14f5c39668f0980973b9a195de560.tar.bz2
linux-051a41fa4ee14f5c39668f0980973b9a195de560.zip
mac80211: don't attempt to reorder multicast frames
Multicast frames can't be transmitted as part of an aggregation session (such a session couldn't even be set up) so don't try to reorder them. Trying to do so would cause the reorder to stop working correctly since multicast QoS frames (as transmitted by the Aruba APs this was found with) would cause sequence number confusion in the buffer. Cc: stable@vger.kernel.org Reported-by: Blaise Gassend <blaise@suitabletech.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/rx.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index caecef870c0e..2b0debb0422b 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -911,7 +911,8 @@ static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx,
u16 sc;
u8 tid, ack_policy;
- if (!ieee80211_is_data_qos(hdr->frame_control))
+ if (!ieee80211_is_data_qos(hdr->frame_control) ||
+ is_multicast_ether_addr(hdr->addr1))
goto dont_reorder;
/*