On 1/30/24 07:24, Jeff Johnson wrote:
On 1/29/2024 5:31 PM, Jeff Johnson wrote:
On 1/28/2024 9:28 PM, Aditya Kumar Singh wrote:
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 4427259154e2..a1a4f100d128 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3543,13 +3543,24 @@ cfg80211_beacon_dup(struct cfg80211_beacon_data *beacon)
return new_beacon;
}
-void ieee80211_csa_finish(struct ieee80211_vif *vif)
+void ieee80211_csa_finish(struct ieee80211_vif *vif, unsigned int link_id)
{
struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
struct ieee80211_local *local = sdata->local;
+ struct ieee80211_link_data *link_data;
+
+ if (WARN_ON(link_id > IEEE80211_MLD_MAX_NUM_LINKS))
let's try that again, shouldn't the test be > = ??
Yes it should be. I will fix this in next version.
+ return;
rcu_read_lock();
+ link_data = rcu_dereference(sdata->link[link_id]);
+ if (WARN_ON(!link_data)) {
+ rcu_read_unlock();
+ return;
+ }
+
+ /* TODO: MBSSID with MLO changes */
if (vif->mbssid_tx_vif == vif) {
/* Trigger ieee80211_csa_finish() on the non-transmitting
* interfaces when channel switch is received on