tree: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git pending-ath11k head: 0f82fec5679664bb91d6c167fd1a146f113e4197 commit: cbdb3159fdf450b7b3999a06600aa0e1fb78383f [198/205] ath11k: set additional values inside wmi_peer_assoc_complete_cmd
If you fix the issue, kindly add following tag Reported-by: kbuild test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> New smatch warnings: drivers/net/wireless/ath/ath11k/mac.c:1274 ath11k_peer_assoc_h_he() error: memcpy() 'he_cap->he_cap_elem.mac_cap_info' too small (6 vs 8) Old smatch warnings: drivers/net/wireless/ath/ath11k/mac.c:1276 ath11k_peer_assoc_h_he() error: memcpy() 'he_cap->he_cap_elem.phy_cap_info' too small (11 vs 12) # https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?id=cbdb3159fdf450b7b3999a06600aa0e1fb78383f git remote add ath6kl https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git git remote update ath6kl git checkout cbdb3159fdf450b7b3999a06600aa0e1fb78383f vim +1274 drivers/net/wireless/ath/ath11k/mac.c 258bbf52 Kalle Valo 2019-02-05 1260 258bbf52 Kalle Valo 2019-02-05 1261 static void ath11k_peer_assoc_h_he(struct ath11k *ar, 258bbf52 Kalle Valo 2019-02-05 1262 struct ieee80211_vif *vif, 258bbf52 Kalle Valo 2019-02-05 1263 struct ieee80211_sta *sta, 258bbf52 Kalle Valo 2019-02-05 1264 struct peer_assoc_params *arg) 258bbf52 Kalle Valo 2019-02-05 1265 { 17aca2d9 John Crispin 2019-06-03 1266 const struct ieee80211_sta_he_cap *he_cap = &sta->he_cap; 3db59a23 Kalle Valo 2019-06-12 1267 u16 v; 17aca2d9 John Crispin 2019-06-03 1268 17aca2d9 John Crispin 2019-06-03 1269 if (!he_cap->has_he) 17aca2d9 John Crispin 2019-06-03 1270 return; 17aca2d9 John Crispin 2019-06-03 1271 17aca2d9 John Crispin 2019-06-03 1272 arg->he_flag = true; 17aca2d9 John Crispin 2019-06-03 1273 17aca2d9 John Crispin 2019-06-03 @1274 memcpy(&arg->peer_he_cap_macinfo, he_cap->he_cap_elem.mac_cap_info, 17aca2d9 John Crispin 2019-06-03 1275 sizeof(arg->peer_he_cap_macinfo)); Smatch thinks these are different sizes... I don't have a copy of struct peer_assoc_params so I can't check. 17aca2d9 John Crispin 2019-06-03 1276 memcpy(&arg->peer_he_cap_phyinfo, he_cap->he_cap_elem.phy_cap_info, 17aca2d9 John Crispin 2019-06-03 1277 sizeof(arg->peer_he_cap_phyinfo)); 17aca2d9 John Crispin 2019-06-03 1278 memcpy(&arg->peer_he_ops, &vif->bss_conf.he_operation, 17aca2d9 John Crispin 2019-06-03 1279 sizeof(arg->peer_he_ops)); cbdb3159 John Crispin 2019-06-17 1280 arg->peer_he_cap_macinfo_internal = 0x0; 17aca2d9 John Crispin 2019-06-03 1281 17aca2d9 John Crispin 2019-06-03 1282 if (he_cap->he_cap_elem.phy_cap_info[6] & 17aca2d9 John Crispin 2019-06-03 1283 IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) { 17aca2d9 John Crispin 2019-06-03 1284 int bit = 7; 17aca2d9 John Crispin 2019-06-03 1285 int nss, ru; 17aca2d9 John Crispin 2019-06-03 1286 17aca2d9 John Crispin 2019-06-03 1287 arg->peer_ppet.numss_m1 = he_cap->ppe_thres[0] & 17aca2d9 John Crispin 2019-06-03 1288 IEEE80211_PPE_THRES_NSS_MASK; 17aca2d9 John Crispin 2019-06-03 1289 arg->peer_ppet.ru_bit_mask = 17aca2d9 John Crispin 2019-06-03 1290 (he_cap->ppe_thres[0] & 17aca2d9 John Crispin 2019-06-03 1291 IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK) >> 17aca2d9 John Crispin 2019-06-03 1292 IEEE80211_PPE_THRES_RU_INDEX_BITMASK_POS; 17aca2d9 John Crispin 2019-06-03 1293 17aca2d9 John Crispin 2019-06-03 1294 for (nss = 0; nss <= arg->peer_ppet.numss_m1; nss++) { 17aca2d9 John Crispin 2019-06-03 1295 for (ru = 0; ru < 4; ru++) { 17aca2d9 John Crispin 2019-06-03 1296 u32 val = 0; 17aca2d9 John Crispin 2019-06-03 1297 int i; 17aca2d9 John Crispin 2019-06-03 1298 17aca2d9 John Crispin 2019-06-03 1299 if ((arg->peer_ppet.ru_bit_mask & BIT(ru)) == 0) 17aca2d9 John Crispin 2019-06-03 1300 continue; 17aca2d9 John Crispin 2019-06-03 1301 for (i = 0; i < 6; i++) { 17aca2d9 John Crispin 2019-06-03 1302 val >>= 1; 17aca2d9 John Crispin 2019-06-03 1303 val |= ((he_cap->ppe_thres[bit / 8] >> 17aca2d9 John Crispin 2019-06-03 1304 (bit % 8)) & 0x1) << 5; 17aca2d9 John Crispin 2019-06-03 1305 bit++; 17aca2d9 John Crispin 2019-06-03 1306 } 17aca2d9 John Crispin 2019-06-03 1307 arg->peer_ppet.ppet16_ppet8_ru3_ru0[nss] |= 17aca2d9 John Crispin 2019-06-03 1308 val << (ru * 6); 17aca2d9 John Crispin 2019-06-03 1309 } 17aca2d9 John Crispin 2019-06-03 1310 } 17aca2d9 John Crispin 2019-06-03 1311 } 17aca2d9 John Crispin 2019-06-03 1312 17aca2d9 John Crispin 2019-06-03 1313 switch (sta->bandwidth) { 17aca2d9 John Crispin 2019-06-03 1314 case IEEE80211_STA_RX_BW_160: 17aca2d9 John Crispin 2019-06-03 1315 if (he_cap->he_cap_elem.phy_cap_info[0] & 17aca2d9 John Crispin 2019-06-03 1316 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G) { 3db59a23 Kalle Valo 2019-06-12 1317 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80p80); 3db59a23 Kalle Valo 2019-06-12 1318 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v; 3db59a23 Kalle Valo 2019-06-12 1319 3db59a23 Kalle Valo 2019-06-12 1320 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80p80); 3db59a23 Kalle Valo 2019-06-12 1321 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v; 3db59a23 Kalle Valo 2019-06-12 1322 17aca2d9 John Crispin 2019-06-03 1323 arg->peer_he_mcs_count++; 17aca2d9 John Crispin 2019-06-03 1324 } 3db59a23 Kalle Valo 2019-06-12 1325 3db59a23 Kalle Valo 2019-06-12 1326 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160); 3db59a23 Kalle Valo 2019-06-12 1327 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v; 3db59a23 Kalle Valo 2019-06-12 1328 3db59a23 Kalle Valo 2019-06-12 1329 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_160); 3db59a23 Kalle Valo 2019-06-12 1330 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v; 3db59a23 Kalle Valo 2019-06-12 1331 17aca2d9 John Crispin 2019-06-03 1332 arg->peer_he_mcs_count++; 17aca2d9 John Crispin 2019-06-03 1333 /* drop through */ 17aca2d9 John Crispin 2019-06-03 1334 17aca2d9 John Crispin 2019-06-03 1335 default: 3db59a23 Kalle Valo 2019-06-12 1336 v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80); 3db59a23 Kalle Valo 2019-06-12 1337 arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v; 3db59a23 Kalle Valo 2019-06-12 1338 v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80); 3db59a23 Kalle Valo 2019-06-12 1339 arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v; 17aca2d9 John Crispin 2019-06-03 1340 arg->peer_he_mcs_count++; 17aca2d9 John Crispin 2019-06-03 1341 break; 17aca2d9 John Crispin 2019-06-03 1342 } 258bbf52 Kalle Valo 2019-02-05 1343 } 258bbf52 Kalle Valo 2019-02-05 1344 :::::: The code at line 1274 was first introduced by commit :::::: 17aca2d9a969788a7f1e3e0c72b5485bf6a432a4 ath11k: add HE support :::::: TO: John Crispin <[email protected]> :::::: CC: Kalle Valo <[email protected]> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation _______________________________________________ ath10k mailing list [email protected] http://lists.infradead.org/mailman/listinfo/ath10k
