summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Copeland <me@bobcopeland.com>2015-06-13 10:16:31 -0400
committerJiri Slaby <jslaby@suse.cz>2015-09-30 11:00:02 +0200
commitaa21b9a683aee430dd378e82e36ddd4aab0cce4e (patch)
tree313aca6ec2f685b35453c8608b42435c298566d4
parent8363652f19e1bbf2c5638a9f5e0ddee91d34e195 (diff)
downloadlwn-aa21b9a683aee430dd378e82e36ddd4aab0cce4e.tar.gz
lwn-aa21b9a683aee430dd378e82e36ddd4aab0cce4e.zip
mac80211: enable assoc check for mesh interfaces
commit 3633ebebab2bbe88124388b7620442315c968e8f upstream. We already set a station to be associated when peering completes, both in user space and in the kernel. Thus we should always have an associated sta before sending data frames to that station. Failure to check assoc state can cause crashes in the lower-level driver due to transmitting unicast data frames before driver sta structures (e.g. ampdu state in ath9k) are initialized. This occurred when forwarding in the presence of fixed mesh paths: frames were transmitted to stations with whom we hadn't yet completed peering. Reported-by: Alexis Green <agreen@cococorp.com> Tested-by: Jesse Jones <jjones@cococorp.com> Signed-off-by: Bob Copeland <me@bobcopeland.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
-rw-r--r--net/mac80211/tx.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index d36e0977f44a..eac14e99c941 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -296,9 +296,6 @@ ieee80211_tx_h_check_assoc(struct ieee80211_tx_data *tx)
if (tx->sdata->vif.type == NL80211_IFTYPE_WDS)
return TX_CONTINUE;
- if (tx->sdata->vif.type == NL80211_IFTYPE_MESH_POINT)
- return TX_CONTINUE;
-
if (tx->flags & IEEE80211_TX_PS_BUFFERED)
return TX_CONTINUE;