mac80211: update to version 5.9.1
[openwrt/staging/nbd.git] / package / kernel / mac80211 / patches / ath11k / 0023-wifi-ath11k-fix-ath11k_mac_op_remain_on_channel-stac.patch
diff --git a/package/kernel/mac80211/patches/ath11k/0023-wifi-ath11k-fix-ath11k_mac_op_remain_on_channel-stac.patch b/package/kernel/mac80211/patches/ath11k/0023-wifi-ath11k-fix-ath11k_mac_op_remain_on_channel-stac.patch
deleted file mode 100644 (file)
index 2c7f196..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From 4fd15bb705d3faa7e6adab2daba2e3af80d9b6bd Mon Sep 17 00:00:00 2001
-From: Dmitry Antipov <dmantipov@yandex.ru>
-Date: Tue, 26 Sep 2023 07:29:04 +0300
-Subject: [PATCH] wifi: ath11k: fix ath11k_mac_op_remain_on_channel() stack
- usage
-
-When compiling with clang 16.0.6, I've noticed the following:
-
-drivers/net/wireless/ath/ath11k/mac.c:8903:12: warning: stack frame
-size (1032) exceeds limit (1024) in 'ath11k_mac_op_remain_on_channel'
-[-Wframe-larger-than]
-static int ath11k_mac_op_remain_on_channel(struct ieee80211_hw *hw,
-           ^
-68/1032 (6.59%) spills, 964/1032 (93.41%) variables
-
-So switch to kzalloc()'ed instance of 'struct scan_req_params' like
-it's done in 'ath11k_mac_op_hw_scan()'. Compile tested only.
-
-Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
-Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
-Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
-Link: https://lore.kernel.org/r/20230926042906.13725-1-dmantipov@yandex.ru
----
- drivers/net/wireless/ath/ath11k/mac.c | 44 +++++++++++++++------------
- 1 file changed, 25 insertions(+), 19 deletions(-)
-
---- a/drivers/net/wireless/ath/ath11k/mac.c
-+++ b/drivers/net/wireless/ath/ath11k/mac.c
-@@ -8908,7 +8908,7 @@ static int ath11k_mac_op_remain_on_chann
- {
-       struct ath11k *ar = hw->priv;
-       struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif);
--      struct scan_req_params arg;
-+      struct scan_req_params *arg;
-       int ret;
-       u32 scan_time_msec;
-@@ -8940,27 +8940,31 @@ static int ath11k_mac_op_remain_on_chann
-       scan_time_msec = ar->hw->wiphy->max_remain_on_channel_duration * 2;
--      memset(&arg, 0, sizeof(arg));
--      ath11k_wmi_start_scan_init(ar, &arg);
--      arg.num_chan = 1;
--      arg.chan_list = kcalloc(arg.num_chan, sizeof(*arg.chan_list),
--                              GFP_KERNEL);
--      if (!arg.chan_list) {
-+      arg = kzalloc(sizeof(*arg), GFP_KERNEL);
-+      if (!arg) {
-               ret = -ENOMEM;
-               goto exit;
-       }
-+      ath11k_wmi_start_scan_init(ar, arg);
-+      arg->num_chan = 1;
-+      arg->chan_list = kcalloc(arg->num_chan, sizeof(*arg->chan_list),
-+                               GFP_KERNEL);
-+      if (!arg->chan_list) {
-+              ret = -ENOMEM;
-+              goto free_arg;
-+      }
--      arg.vdev_id = arvif->vdev_id;
--      arg.scan_id = ATH11K_SCAN_ID;
--      arg.chan_list[0] = chan->center_freq;
--      arg.dwell_time_active = scan_time_msec;
--      arg.dwell_time_passive = scan_time_msec;
--      arg.max_scan_time = scan_time_msec;
--      arg.scan_flags |= WMI_SCAN_FLAG_PASSIVE;
--      arg.scan_flags |= WMI_SCAN_FILTER_PROBE_REQ;
--      arg.burst_duration = duration;
-+      arg->vdev_id = arvif->vdev_id;
-+      arg->scan_id = ATH11K_SCAN_ID;
-+      arg->chan_list[0] = chan->center_freq;
-+      arg->dwell_time_active = scan_time_msec;
-+      arg->dwell_time_passive = scan_time_msec;
-+      arg->max_scan_time = scan_time_msec;
-+      arg->scan_flags |= WMI_SCAN_FLAG_PASSIVE;
-+      arg->scan_flags |= WMI_SCAN_FILTER_PROBE_REQ;
-+      arg->burst_duration = duration;
--      ret = ath11k_start_scan(ar, &arg);
-+      ret = ath11k_start_scan(ar, arg);
-       if (ret) {
-               ath11k_warn(ar->ab, "failed to start roc scan: %d\n", ret);
-@@ -8986,7 +8990,9 @@ static int ath11k_mac_op_remain_on_chann
-       ret = 0;
- free_chan_list:
--      kfree(arg.chan_list);
-+      kfree(arg->chan_list);
-+free_arg:
-+      kfree(arg);
- exit:
-       mutex_unlock(&ar->conf_mutex);
-       return ret;