wifi: mac80211: ieee80211_recalc_txpower receives a link
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Mon, 7 Oct 2024 12:00:50 +0000 (15:00 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 23 Oct 2024 14:43:18 +0000 (16:43 +0200)
Handle the tx power per-link. Don't change the behavior for now. Just
change the signature of the function.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20241007144851.705bbf953d0a.I8a429dede07bab5801f4c730a6abff7ce23b22d3@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/cfg.c
net/mac80211/chan.c
net/mac80211/ieee80211_i.h
net/mac80211/iface.c

index 548b9bbdac0450f183f15c0b100e8cd60a7be8fa..27468a463d8bf2a16e1cf708f2280b2a9f015789 100644 (file)
@@ -3096,7 +3096,7 @@ static int ieee80211_set_tx_power(struct wiphy *wiphy,
                        sdata->vif.bss_conf.txpower_type = txp_type;
                }
 
-               ieee80211_recalc_txpower(sdata, update_txp_type);
+               ieee80211_recalc_txpower(&sdata->deflink, update_txp_type);
 
                return 0;
        }
@@ -3127,7 +3127,7 @@ static int ieee80211_set_tx_power(struct wiphy *wiphy,
        list_for_each_entry(sdata, &local->interfaces, list) {
                if (sdata->vif.type == NL80211_IFTYPE_MONITOR)
                        continue;
-               ieee80211_recalc_txpower(sdata, update_txp_type);
+               ieee80211_recalc_txpower(&sdata->deflink, update_txp_type);
        }
 
        if (has_monitor) {
@@ -3139,7 +3139,8 @@ static int ieee80211_set_tx_power(struct wiphy *wiphy,
                                update_txp_type = true;
                        sdata->vif.bss_conf.txpower_type = txp_type;
 
-                       ieee80211_recalc_txpower(sdata, update_txp_type);
+                       ieee80211_recalc_txpower(&sdata->deflink,
+                                                update_txp_type);
                }
        }
 
index 3f7df45b0431dfcd1af8e4248f461b0c1d2a499c..426ae5c066c9c222bac5379dcfdba6782f0973d7 100644 (file)
@@ -905,7 +905,7 @@ static int ieee80211_assign_link_chanctx(struct ieee80211_link_data *link,
        }
 
        if (new_ctx && ieee80211_chanctx_num_assigned(local, new_ctx) > 0) {
-               ieee80211_recalc_txpower(sdata, false);
+               ieee80211_recalc_txpower(&sdata->deflink, false);
                ieee80211_recalc_chanctx_min_def(local, new_ctx, NULL, false);
        }
 
@@ -1712,7 +1712,7 @@ static int ieee80211_vif_use_reserved_switch(struct ieee80211_local *local)
                                                                  link,
                                                                  changed);
 
-                       ieee80211_recalc_txpower(sdata, false);
+                       ieee80211_recalc_txpower(&sdata->deflink, false);
                }
 
                ieee80211_recalc_chanctx_chantype(local, ctx);
index d884d05826d36acdc13f21652a123ec060245dce..94d9ffcbe1f8e95e2da95e0497605523f3fb65a5 100644 (file)
@@ -2034,7 +2034,7 @@ int ieee80211_add_virtual_monitor(struct ieee80211_local *local);
 void ieee80211_del_virtual_monitor(struct ieee80211_local *local);
 
 bool __ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata);
-void ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata,
+void ieee80211_recalc_txpower(struct ieee80211_link_data *link,
                              bool update_bss);
 void ieee80211_recalc_offload(struct ieee80211_local *local);
 
index 6ef0990d3d296a3163f592695939fd10d61d4b8c..e4a8ed10273623dffe784717809e2dfcc09da5f0 100644 (file)
@@ -74,12 +74,12 @@ bool __ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata)
        return false;
 }
 
-void ieee80211_recalc_txpower(struct ieee80211_sub_if_data *sdata,
+void ieee80211_recalc_txpower(struct ieee80211_link_data *link,
                              bool update_bss)
 {
-       if (__ieee80211_recalc_txpower(sdata) ||
-           (update_bss && ieee80211_sdata_running(sdata)))
-               ieee80211_link_info_change_notify(sdata, &sdata->deflink,
+       if (__ieee80211_recalc_txpower(link->sdata) ||
+           (update_bss && ieee80211_sdata_running(link->sdata)))
+               ieee80211_link_info_change_notify(link->sdata, link,
                                                  BSS_CHANGED_TXPOWER);
 }