2015-06-09 05:35:52

by Chun-Yeow Yeoh

[permalink] [raw]
Subject: [PATCH] mac80211: fix the beacon csa counter for mesh and ibss

The csa counter has moved from sdata to beacon/presp but
it is not updated accordingly for mesh and ibss. Fix this.

This regression is introduced by the following patch:
mac80211: move csa counters from sdata to beacon/presp

Signed-off-by: Chun-Yeow Yeoh <[email protected]>
---
net/mac80211/cfg.c | 1 +
net/mac80211/ibss.c | 1 +
net/mac80211/mesh.c | 1 +
3 files changed, 3 insertions(+)

diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index bb9f836..0fdfc20 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3443,6 +3443,7 @@ static int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
/* Update CSA counters */
if (sdata->vif.csa_active &&
(sdata->vif.type == NL80211_IFTYPE_AP ||
+ sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
sdata->vif.type == NL80211_IFTYPE_ADHOC) &&
params->n_csa_offsets) {
int i;
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 21716af..7f72bc9 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -146,6 +146,7 @@ ieee80211_ibss_build_presp(struct ieee80211_sub_if_data *sdata,
csa_settings->chandef.chan->center_freq);
presp->csa_counter_offsets[0] = (pos - presp->head);
*pos++ = csa_settings->count;
+ presp->csa_current_counter = csa_settings->count;
}

/* put the remaining rates in WLAN_EID_EXT_SUPP_RATES */
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index d468424..817098a 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -680,6 +680,7 @@ ieee80211_mesh_build_beacon(struct ieee80211_if_mesh *ifmsh)
*pos++ = 0x0;
*pos++ = ieee80211_frequency_to_channel(
csa->settings.chandef.chan->center_freq);
+ bcn->csa_current_counter = csa->settings.count;
bcn->csa_counter_offsets[0] = hdr_len + 6;
*pos++ = csa->settings.count;
*pos++ = WLAN_EID_CHAN_SWITCH_PARAM;
--
2.3.0



2015-06-09 20:04:55

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix the beacon csa counter for mesh and ibss

On Tue, 2015-06-09 at 13:35 +0800, Chun-Yeow Yeoh wrote:
> The csa counter has moved from sdata to beacon/presp but
> it is not updated accordingly for mesh and ibss. Fix this.
>
> This regression is introduced by the following patch:
> mac80211: move csa counters from sdata to beacon/presp

Applied.

johannes