mac80211: fix the increment of mesh precedence value
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>
This commit is contained in:
Родитель
772f038933
Коммит
c782bf8caa
|
@ -3207,13 +3207,13 @@ int ieee80211_channel_switch(struct wiphy *wiphy, struct net_device *dev,
|
||||||
params->chandef.chan->band)
|
params->chandef.chan->band)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (!ifmsh->pre_value)
|
if (ifmsh->csa_role == IEEE80211_MESH_CSA_ROLE_NONE) {
|
||||||
ifmsh->pre_value = 1;
|
|
||||||
else
|
|
||||||
ifmsh->pre_value++;
|
|
||||||
|
|
||||||
if (ifmsh->csa_role == IEEE80211_MESH_CSA_ROLE_NONE)
|
|
||||||
ifmsh->csa_role = IEEE80211_MESH_CSA_ROLE_INIT;
|
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 */
|
/* see comments in the NL80211_IFTYPE_AP block */
|
||||||
if (params->count > 1) {
|
if (params->count > 1) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче