Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 017b45bb authored by Avri Altman's avatar Avri Altman Committed by Johannes Berg
Browse files

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: default avatarAvri Altman <avri.altman@intel.com>
[edit commit message]
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 2ce6a0f5
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -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;
}