CC: [email protected]
BCC: [email protected]
CC: "GNU/Weeb Mailing List" <[email protected]>
CC: [email protected]
TO: Baochen Qiang <[email protected]>
CC: Kalle Valo <[email protected]>

tree:   https://github.com/ammarfaizi2/linux-block kvalo/ath/pending
head:   c9a8efc35304a89fc0751649945909caf03eeb29
commit: 5ad5b356e75f402fec930cf0d77b6c7862850b55 [36/40] ath11k: Add support 
for SAR
:::::: branch date: 6 days ago
:::::: commit date: 6 days ago
config: x86_64-randconfig-m001-20220418 
(https://download.01.org/0day-ci/archive/20220418/[email protected]/config)
compiler: gcc-11 (Debian 11.2.0-19) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
drivers/net/wireless/ath/ath11k/mac.c:8293 ath11k_mac_op_set_bios_sar_specs() 
warn: variable dereferenced before check 'sar' (see line 8280)

Old smatch warnings:
drivers/net/wireless/ath/ath11k/mac.c:2134 ath11k_peer_assoc_h_he() error: 
uninitialized symbol 'rx_mcs_80'.
drivers/net/wireless/ath/ath11k/mac.c:2134 ath11k_peer_assoc_h_he() error: 
uninitialized symbol 'rx_mcs_160'.
drivers/net/wireless/ath/ath11k/mac.c:2136 ath11k_peer_assoc_h_he() error: 
uninitialized symbol 'rx_mcs_80'.

vim +/sar +8293 drivers/net/wireless/ath/ath11k/mac.c

a16d9b50cfbaf1 Carl Huang    2022-03-14  8275  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8276  static int 
ath11k_mac_op_set_bios_sar_specs(struct ieee80211_hw *hw,
5ad5b356e75f40 Baochen Qiang 2022-04-12  8277                                   
    const struct cfg80211_sar_specs *sar)
5ad5b356e75f40 Baochen Qiang 2022-04-12  8278  {
5ad5b356e75f40 Baochen Qiang 2022-04-12  8279   struct ath11k *ar = hw->priv;
5ad5b356e75f40 Baochen Qiang 2022-04-12 @8280   const struct 
cfg80211_sar_sub_specs *sspec = sar->sub_specs;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8281   int ret, index;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8282   u8 *sar_tbl;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8283   u32 i;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8284  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8285   mutex_lock(&ar->conf_mutex);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8286  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8287   if 
(!test_bit(WMI_TLV_SERVICE_BIOS_SAR_SUPPORT, ar->ab->wmi_ab.svc_map) ||
5ad5b356e75f40 Baochen Qiang 2022-04-12  8288       
!ar->ab->hw_params.bios_sar_capa) {
5ad5b356e75f40 Baochen Qiang 2022-04-12  8289           ret = -EOPNOTSUPP;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8290           goto exit;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8291   }
5ad5b356e75f40 Baochen Qiang 2022-04-12  8292  
5ad5b356e75f40 Baochen Qiang 2022-04-12 @8293   if (!sar || sar->type != 
NL80211_SAR_TYPE_POWER ||
5ad5b356e75f40 Baochen Qiang 2022-04-12  8294       sar->num_sub_specs == 0) {
5ad5b356e75f40 Baochen Qiang 2022-04-12  8295           ret = -EINVAL;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8296           goto exit;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8297   }
5ad5b356e75f40 Baochen Qiang 2022-04-12  8298  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8299   ret = 
ath11k_wmi_pdev_set_bios_geo_table_param(ar);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8300   if (ret) {
5ad5b356e75f40 Baochen Qiang 2022-04-12  8301           ath11k_warn(ar->ab, 
"failed to set geo table: %d\n", ret);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8302           goto exit;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8303   }
5ad5b356e75f40 Baochen Qiang 2022-04-12  8304  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8305   sar_tbl = 
kzalloc(BIOS_SAR_TABLE_LEN, GFP_KERNEL);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8306   if (!sar_tbl) {
5ad5b356e75f40 Baochen Qiang 2022-04-12  8307           ret = -ENOMEM;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8308           goto exit;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8309   }
5ad5b356e75f40 Baochen Qiang 2022-04-12  8310  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8311   for (i = 0; i < 
sar->num_sub_specs; i++) {
5ad5b356e75f40 Baochen Qiang 2022-04-12  8312           if 
(sspec->freq_range_index >= (BIOS_SAR_TABLE_LEN >> 1)) {
5ad5b356e75f40 Baochen Qiang 2022-04-12  8313                   
ath11k_warn(ar->ab, "Ignore bad frequency index %u, max allowed %u\n",
5ad5b356e75f40 Baochen Qiang 2022-04-12  8314                               
sspec->freq_range_index, BIOS_SAR_TABLE_LEN >> 1);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8315                   continue;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8316           }
5ad5b356e75f40 Baochen Qiang 2022-04-12  8317  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8318           /* chain0 and chain1 
share same power setting */
5ad5b356e75f40 Baochen Qiang 2022-04-12  8319           
sar_tbl[sspec->freq_range_index] = sspec->power;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8320           index = 
sspec->freq_range_index + (BIOS_SAR_TABLE_LEN >> 1);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8321           sar_tbl[index] = 
sspec->power;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8322           ath11k_dbg(ar->ab, 
ATH11K_DBG_MAC, "sar tbl[%d] = %d\n",
5ad5b356e75f40 Baochen Qiang 2022-04-12  8323                      
sspec->freq_range_index, sar_tbl[sspec->freq_range_index]);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8324           sspec++;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8325   }
5ad5b356e75f40 Baochen Qiang 2022-04-12  8326  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8327   ret = 
ath11k_wmi_pdev_set_bios_sar_table_param(ar, sar_tbl);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8328   if (ret)
5ad5b356e75f40 Baochen Qiang 2022-04-12  8329           ath11k_warn(ar->ab, 
"failed to set sar power: %d", ret);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8330  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8331   kfree(sar_tbl);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8332  exit:
5ad5b356e75f40 Baochen Qiang 2022-04-12  8333   mutex_unlock(&ar->conf_mutex);
5ad5b356e75f40 Baochen Qiang 2022-04-12  8334  
5ad5b356e75f40 Baochen Qiang 2022-04-12  8335   return ret;
5ad5b356e75f40 Baochen Qiang 2022-04-12  8336  }
5ad5b356e75f40 Baochen Qiang 2022-04-12  8337  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to