Commit 6ae32e5d authored by Arik Nemtsov's avatar Arik Nemtsov Committed by Johannes Berg

mac80211: fix error path for TDLS setup

The patch "8f02e6b mac80211: make sure TDLS peer STA exists during
setup" broke TDLS error paths where the STA doesn't exist when sending
the error.
Fix it by only testing for STA existence during a non-error flow.
Signed-off-by: default avatarArik Nemtsov <arikx.nemtsov@intel.com>
Reviewed-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 626911cc
...@@ -349,8 +349,11 @@ ieee80211_tdls_mgmt_setup(struct wiphy *wiphy, struct net_device *dev, ...@@ -349,8 +349,11 @@ ieee80211_tdls_mgmt_setup(struct wiphy *wiphy, struct net_device *dev,
/* /*
* make sure we have a STA representing the peer so we drop or buffer * make sure we have a STA representing the peer so we drop or buffer
* non-TDLS-setup frames to the peer. We can't send other packets * non-TDLS-setup frames to the peer. We can't send other packets
* during setup through the AP path * during setup through the AP path.
* Allow error packets to be sent - sometimes we don't even add a STA
* before failing the setup.
*/ */
if (status_code == 0) {
rcu_read_lock(); rcu_read_lock();
if (!sta_info_get(sdata, peer)) { if (!sta_info_get(sdata, peer)) {
rcu_read_unlock(); rcu_read_unlock();
...@@ -358,6 +361,7 @@ ieee80211_tdls_mgmt_setup(struct wiphy *wiphy, struct net_device *dev, ...@@ -358,6 +361,7 @@ ieee80211_tdls_mgmt_setup(struct wiphy *wiphy, struct net_device *dev,
goto exit; goto exit;
} }
rcu_read_unlock(); rcu_read_unlock();
}
ieee80211_flush_queues(local, sdata); ieee80211_flush_queues(local, sdata);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment