diff mbox

mac80211: clear sdata->radar_required

Message ID 1423391767-1185-1-git-send-email-eliad@wizery.com (mailing list archive)
State Accepted
Delegated to: Johannes Berg
Headers show

Commit Message

Eliad Peller Feb. 8, 2015, 10:36 a.m. UTC
If ieee80211_vif_use_channel() fails, we have to clear
sdata->radar_required (which we might have just set).

Failing to do it results in stale radar_required field
which prevents starting new scan requests.

Reported-by: Jouni Malinen <j@w1.fi>
Signed-off-by: Eliad Peller <eliad@wizery.com>
---
 net/mac80211/chan.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Johannes Berg Feb. 24, 2015, 9:51 a.m. UTC | #1
On Sun, 2015-02-08 at 12:36 +0200, Eliad Peller wrote:
> If ieee80211_vif_use_channel() fails, we have to clear
> sdata->radar_required (which we might have just set).
> 
> Failing to do it results in stale radar_required field
> which prevents starting new scan requests.

Applied, but I fixed it to use = false instead of = 0.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c
index 35b11e1..f3a8708 100644
--- a/net/mac80211/chan.c
+++ b/net/mac80211/chan.c
@@ -1508,6 +1508,8 @@  static void __ieee80211_vif_release_channel(struct ieee80211_sub_if_data *sdata)
 	if (ieee80211_chanctx_refcount(local, ctx) == 0)
 		ieee80211_free_chanctx(local, ctx);
 
+	sdata->radar_required = 0;
+
 	/* Unreserving may ready an in-place reservation. */
 	if (use_reserved_switch)
 		ieee80211_vif_use_reserved_switch(local);
@@ -1566,6 +1568,9 @@  int ieee80211_vif_use_channel(struct ieee80211_sub_if_data *sdata,
 	ieee80211_recalc_smps_chanctx(local, ctx);
 	ieee80211_recalc_radar_chanctx(local, ctx);
  out:
+	if (ret)
+		sdata->radar_required = 0;
+
 	mutex_unlock(&local->chanctx_mtx);
 	return ret;
 }