mirror of https://gitee.com/openkylin/linux.git
mac80211: update ht flag if bss configuration changed
There's a bug in tracking HT opmode changes in mac80211, it fails to update the driver when the channel parameters don't change. Move the code to do the HT opmode checking independently of the channel/bandwidth tracking. Signed-off-by: Avri Altman <avri.altman@intel.com> [edit commit message] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
2ce6a0f554
commit
017b45bb5c
|
@ -330,6 +330,16 @@ static int ieee80211_config_bw(struct ieee80211_sub_if_data *sdata,
|
|||
if (WARN_ON_ONCE(!sta))
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* if bss configuration changed store the new one -
|
||||
* this may be applicable even if channel is identical
|
||||
*/
|
||||
ht_opmode = le16_to_cpu(ht_oper->operation_mode);
|
||||
if (sdata->vif.bss_conf.ht_operation_mode != ht_opmode) {
|
||||
*changed |= BSS_CHANGED_HT;
|
||||
sdata->vif.bss_conf.ht_operation_mode = ht_opmode;
|
||||
}
|
||||
|
||||
chan = sdata->vif.bss_conf.chandef.chan;
|
||||
sband = local->hw.wiphy->bands[chan->band];
|
||||
|
||||
|
@ -416,14 +426,6 @@ static int ieee80211_config_bw(struct ieee80211_sub_if_data *sdata,
|
|||
IEEE80211_RC_BW_CHANGED);
|
||||
}
|
||||
|
||||
ht_opmode = le16_to_cpu(ht_oper->operation_mode);
|
||||
|
||||
/* if bss configuration changed store the new one */
|
||||
if (sdata->vif.bss_conf.ht_operation_mode != ht_opmode) {
|
||||
*changed |= BSS_CHANGED_HT;
|
||||
sdata->vif.bss_conf.ht_operation_mode = ht_opmode;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue