]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mac80211: simplify ieee80211_recalc_chanctx_min_def() API
authorJohannes Berg <johannes.berg@intel.com>
Wed, 5 Nov 2025 15:03:44 +0000 (16:03 +0100)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 10 Nov 2025 09:38:50 +0000 (10:38 +0100)
ieee80211_recalc_chanctx_min_def() is used outside the chandef
code, but then should/is always used with NULL/false for the
two last arguments. Remove them, and create another level of
indirection for use inside the file.

Link: https://patch.msgid.link/20251105160431.33408844c392.I4f52298861780c17a27cd229609e8a3e29c8d740@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/chan.c
net/mac80211/he.c
net/mac80211/ieee80211_i.h
net/mac80211/util.c

index 944e1c18501a79d5f6a5b969e385434e2864f0a5..dda11b5192524b23f86cd400514530ff6a0f05eb 100644 (file)
@@ -410,10 +410,10 @@ ieee80211_get_chanctx_max_required_bw(struct ieee80211_local *local,
  * channel context.
  */
 static u32
-_ieee80211_recalc_chanctx_min_def(struct ieee80211_local *local,
-                                 struct ieee80211_chanctx *ctx,
-                                 struct ieee80211_link_data *rsvd_for,
-                                 bool check_reserved)
+__ieee80211_recalc_chanctx_min_def(struct ieee80211_local *local,
+                                  struct ieee80211_chanctx *ctx,
+                                  struct ieee80211_link_data *rsvd_for,
+                                  bool check_reserved)
 {
        enum nl80211_chan_width max_bw;
        struct cfg80211_chan_def min_def;
@@ -518,13 +518,14 @@ static void ieee80211_chan_bw_change(struct ieee80211_local *local,
  * the max of min required widths of all the interfaces bound to this
  * channel context.
  */
-void ieee80211_recalc_chanctx_min_def(struct ieee80211_local *local,
-                                     struct ieee80211_chanctx *ctx,
-                                     struct ieee80211_link_data *rsvd_for,
-                                     bool check_reserved)
+static void
+_ieee80211_recalc_chanctx_min_def(struct ieee80211_local *local,
+                                 struct ieee80211_chanctx *ctx,
+                                 struct ieee80211_link_data *rsvd_for,
+                                 bool check_reserved)
 {
-       u32 changed = _ieee80211_recalc_chanctx_min_def(local, ctx, rsvd_for,
-                                                       check_reserved);
+       u32 changed = __ieee80211_recalc_chanctx_min_def(local, ctx, rsvd_for,
+                                                        check_reserved);
 
        if (!changed)
                return;
@@ -538,6 +539,12 @@ void ieee80211_recalc_chanctx_min_def(struct ieee80211_local *local,
        ieee80211_chan_bw_change(local, ctx, false, false);
 }
 
+void ieee80211_recalc_chanctx_min_def(struct ieee80211_local *local,
+                                     struct ieee80211_chanctx *ctx)
+{
+       _ieee80211_recalc_chanctx_min_def(local, ctx, NULL, false);
+}
+
 static void _ieee80211_change_chanctx(struct ieee80211_local *local,
                                      struct ieee80211_chanctx *ctx,
                                      struct ieee80211_chanctx *old_ctx,
@@ -572,7 +579,7 @@ static void _ieee80211_change_chanctx(struct ieee80211_local *local,
        ieee80211_chan_bw_change(local, old_ctx, false, true);
 
        if (ieee80211_chanreq_identical(&ctx_req, chanreq)) {
-               ieee80211_recalc_chanctx_min_def(local, ctx, rsvd_for, false);
+               _ieee80211_recalc_chanctx_min_def(local, ctx, rsvd_for, false);
                return;
        }
 
@@ -593,7 +600,8 @@ static void _ieee80211_change_chanctx(struct ieee80211_local *local,
        ctx->conf.ap = chanreq->ap;
 
        /* check if min chanctx also changed */
-       changed |= _ieee80211_recalc_chanctx_min_def(local, ctx, rsvd_for, false);
+       changed |= __ieee80211_recalc_chanctx_min_def(local, ctx, rsvd_for,
+                                                     false);
 
        ieee80211_add_wbrf(local, &ctx->conf.def);
 
@@ -732,7 +740,7 @@ ieee80211_alloc_chanctx(struct ieee80211_local *local,
        ctx->conf.radar_enabled = false;
        ctx->conf.radio_idx = radio_idx;
        ctx->radar_detected = false;
-       _ieee80211_recalc_chanctx_min_def(local, ctx, NULL, false);
+       __ieee80211_recalc_chanctx_min_def(local, ctx, NULL, false);
 
        return ctx;
 }
@@ -925,7 +933,7 @@ static int ieee80211_assign_link_chanctx(struct ieee80211_link_data *link,
 
        if (new_ctx) {
                /* recalc considering the link we'll use it for now */
-               ieee80211_recalc_chanctx_min_def(local, new_ctx, link, false);
+               _ieee80211_recalc_chanctx_min_def(local, new_ctx, link, false);
 
                ret = drv_assign_vif_chanctx(local, sdata, link->conf, new_ctx);
                if (assign_on_failure || !ret) {
@@ -946,12 +954,12 @@ static int ieee80211_assign_link_chanctx(struct ieee80211_link_data *link,
                ieee80211_recalc_chanctx_chantype(local, curr_ctx);
                ieee80211_recalc_smps_chanctx(local, curr_ctx);
                ieee80211_recalc_radar_chanctx(local, curr_ctx);
-               ieee80211_recalc_chanctx_min_def(local, curr_ctx, NULL, false);
+               ieee80211_recalc_chanctx_min_def(local, curr_ctx);
        }
 
        if (new_ctx && ieee80211_chanctx_num_assigned(local, new_ctx) > 0) {
                ieee80211_recalc_txpower(link, false);
-               ieee80211_recalc_chanctx_min_def(local, new_ctx, NULL, false);
+               ieee80211_recalc_chanctx_min_def(local, new_ctx);
        }
 
        if (conf) {
@@ -1414,7 +1422,7 @@ ieee80211_link_use_reserved_reassign(struct ieee80211_link_data *link)
        if (ieee80211_chanctx_refcount(local, old_ctx) == 0)
                ieee80211_free_chanctx(local, old_ctx, false);
 
-       ieee80211_recalc_chanctx_min_def(local, new_ctx, NULL, false);
+       ieee80211_recalc_chanctx_min_def(local, new_ctx);
        ieee80211_recalc_smps_chanctx(local, new_ctx);
        ieee80211_recalc_radar_chanctx(local, new_ctx);
 
@@ -1709,7 +1717,7 @@ static int ieee80211_vif_use_reserved_switch(struct ieee80211_local *local)
                                                 true, true);
                }
 
-               ieee80211_recalc_chanctx_min_def(local, ctx, NULL, true);
+               _ieee80211_recalc_chanctx_min_def(local, ctx, NULL, true);
        }
 
        /*
@@ -1781,7 +1789,7 @@ static int ieee80211_vif_use_reserved_switch(struct ieee80211_local *local)
                ieee80211_recalc_chanctx_chantype(local, ctx);
                ieee80211_recalc_smps_chanctx(local, ctx);
                ieee80211_recalc_radar_chanctx(local, ctx);
-               ieee80211_recalc_chanctx_min_def(local, ctx, NULL, false);
+               ieee80211_recalc_chanctx_min_def(local, ctx);
 
                for_each_sdata_link(local, link) {
                        if (link->reserved_chanctx != ctx)
index 5792ef77e986b41da0e0531c6bc9b1b184826f0e..f7b05e59374c7eef8ff8038a6e95bd452e09a5d2 100644 (file)
@@ -3,7 +3,7 @@
  * HE handling
  *
  * Copyright(c) 2017 Intel Deutschland GmbH
- * Copyright(c) 2019 - 2024 Intel Corporation
+ * Copyright(c) 2019-2025 Intel Corporation
  */
 
 #include "ieee80211_i.h"
@@ -313,7 +313,7 @@ bool ieee80211_prepare_rx_omi_bw(struct ieee80211_link_sta *pub_link_sta,
                ieee80211_link_sta_rc_update_omi(link, link_sta);
        } else {
                link_sta->rx_omi_bw_rx = bw;
-               ieee80211_recalc_chanctx_min_def(local, chanctx, NULL, false);
+               ieee80211_recalc_chanctx_min_def(local, chanctx);
        }
 
        link_sta->rx_omi_bw_staging = bw;
@@ -359,7 +359,7 @@ void ieee80211_finalize_rx_omi_bw(struct ieee80211_link_sta *pub_link_sta)
                /* channel context in finalize only when narrowing bandwidth */
                WARN_ON(link_sta->rx_omi_bw_rx < link_sta->rx_omi_bw_staging);
                link_sta->rx_omi_bw_rx = link_sta->rx_omi_bw_staging;
-               ieee80211_recalc_chanctx_min_def(local, chanctx, NULL, false);
+               ieee80211_recalc_chanctx_min_def(local, chanctx);
        }
 
        trace_api_return_void(local);
index c94156f209952e297930199669fb8097426b1e7d..898ccbc4ec64b77018872779c4f62b61c30ecc61 100644 (file)
@@ -2768,9 +2768,7 @@ int ieee80211_chanctx_refcount(struct ieee80211_local *local,
 void ieee80211_recalc_smps_chanctx(struct ieee80211_local *local,
                                   struct ieee80211_chanctx *chanctx);
 void ieee80211_recalc_chanctx_min_def(struct ieee80211_local *local,
-                                     struct ieee80211_chanctx *ctx,
-                                     struct ieee80211_link_data *rsvd_for,
-                                     bool check_reserved);
+                                     struct ieee80211_chanctx *ctx);
 bool ieee80211_is_radar_required(struct ieee80211_local *local,
                                 struct cfg80211_scan_request *req);
 bool ieee80211_is_radio_idx_in_scan_req(struct wiphy *wiphy,
index 324d84d11cab9b0a3d735fa62846d0fa793916fb..1a128f7aae820735e64ef5dacc9dffefbbeb341a 100644 (file)
@@ -2347,7 +2347,7 @@ void ieee80211_recalc_min_chandef(struct ieee80211_sub_if_data *sdata,
 
                chanctx = container_of(chanctx_conf, struct ieee80211_chanctx,
                                       conf);
-               ieee80211_recalc_chanctx_min_def(local, chanctx, NULL, false);
+               ieee80211_recalc_chanctx_min_def(local, chanctx);
        }
 }