The mesh precedence value in ieee80211_channel_switch
should be incremented or set to 1 only if this is the
initiator of mesh channel switch. For non-initiator,
the precedence value has updated using the Mesh
Channel Switch Parameters element. Fix this.
Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
params->chandef.chan->band)
return -EINVAL;
- if (!ifmsh->pre_value)
- ifmsh->pre_value = 1;
- else
- ifmsh->pre_value++;
-
- if (ifmsh->csa_role == IEEE80211_MESH_CSA_ROLE_NONE)
+ if (ifmsh->csa_role == IEEE80211_MESH_CSA_ROLE_NONE) {
ifmsh->csa_role = IEEE80211_MESH_CSA_ROLE_INIT;
+ if (!ifmsh->pre_value)
+ ifmsh->pre_value = 1;
+ else
+ ifmsh->pre_value++;
+ }
/* see comments in the NL80211_IFTYPE_AP block */
if (params->count > 1) {