]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: ath12k: initialize eirp_power before use
authorBaochen Qiang <baochen.qiang@oss.qualcomm.com>
Mon, 4 Aug 2025 03:03:10 +0000 (11:03 +0800)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Thu, 18 Sep 2025 23:43:46 +0000 (16:43 -0700)
Currently, at the end of ath12k_mac_fill_reg_tpc_info(), the
reg_tpc_info struct is populated, including the following:
reg_tpc_info->is_psd_power = is_psd_power;
reg_tpc_info->eirp_power = eirp_power;

Kernel test robot complains on uninitialized symbol:
drivers/net/wireless/ath/ath12k/mac.c:10069
ath12k_mac_fill_reg_tpc_info() error: uninitialized symbol 'eirp_power'

This is because there are some code paths that never set eirp_power, so
the assignment of reg_tpc_info->eirp_power can come from an
uninitialized variable. Functionally this is OK since the eirp_power
only has meaning when is_psd_power is true, and all code paths which set
is_psd_power to true also set eirp_power. However, to keep the robot
happy, always initialize eirp_power before use.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00284-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1

Fixes: aeda163bb0c7 ("wifi: ath12k: fill parameters for vdev set TPC power WMI command")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/202505180927.tbNWr3vE-lkp@intel.com/
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250804-ath12k-fix-smatch-warning-on-6g-vlp-v1-1-56f1e54152ab@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath12k/mac.c

index 61a4f5af62a70de8d71718fbeae86eda67859018..63b7129f224591045eaf08fada547991b6c53a5a 100644 (file)
@@ -11241,8 +11241,8 @@ void ath12k_mac_fill_reg_tpc_info(struct ath12k *ar,
        struct ieee80211_channel *chan, *temp_chan;
        u8 pwr_lvl_idx, num_pwr_levels, pwr_reduction;
        bool is_psd_power = false, is_tpe_present = false;
-       s8 max_tx_power[ATH12K_NUM_PWR_LEVELS],
-               psd_power, tx_power, eirp_power;
+       s8 max_tx_power[ATH12K_NUM_PWR_LEVELS], psd_power, tx_power;
+       s8 eirp_power = 0;
        struct ath12k_vif *ahvif = arvif->ahvif;
        u16 start_freq, center_freq;
        u8 reg_6ghz_power_mode;