]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: iwlwifi: mld: fix chandef start calculation
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Sun, 11 Jan 2026 17:39:12 +0000 (19:39 +0200)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 21 Jan 2026 12:23:02 +0000 (14:23 +0200)
A link pair in which both links are in 5 GHz can be used for EMLSR only
if they are separated enough.

To check this condition we calculate the start and the end of the
chandefs of both links in the pair and do some checks.

But the calculation of the start/end of the chandef is currently done
by subtracting/adding half the bandwidth from/to the control channel's
center frequency, when it should really be subtracted/added from/to the
center frequency of the entire chandef.

Fix the wrong calculation.

Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260111193638.2138fdb99bd5.I4d2e5957b22482a57b1d6ca444e90fcf73bf2cab@changeid
drivers/net/wireless/intel/iwlwifi/mld/mlo.c

index c6b151f269216b02d0ddedd525d46a01d5fae6f8..1efefc737248f7202217d7b85d98561d716329e5 100644 (file)
@@ -844,9 +844,9 @@ iwl_mld_emlsr_pair_state(struct ieee80211_vif *vif,
                if (c_low->chan->center_freq > c_high->chan->center_freq)
                        swap(c_low, c_high);
 
-               c_low_upper_edge = c_low->chan->center_freq +
+               c_low_upper_edge = c_low->center_freq1 +
                                   cfg80211_chandef_get_width(c_low) / 2;
-               c_high_lower_edge = c_high->chan->center_freq -
+               c_high_lower_edge = c_high->center_freq1 -
                                    cfg80211_chandef_get_width(c_high) / 2;
 
                if (a->chandef->chan->band == NL80211_BAND_5GHZ &&