CC: [email protected]
CC: [email protected]
TO: Wen Gong <[email protected]>
CC: Kalle Valo <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   0280e3c58f92b2fe0e8fbbdf8d386449168de4a8
commit: 1b8bb94c0612cf32e418e90ae93cf37214d84669 ath11k: report tx bitrate for 
iw wlan station dump
date:   5 weeks ago
:::::: branch date: 2 days ago
:::::: commit date: 5 weeks ago
config: microblaze-randconfig-m031-20220127 
(https://download.01.org/0day-ci/archive/20220127/[email protected]/config)
compiler: microblaze-linux-gcc (GCC) 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]>

smatch warnings:
drivers/net/wireless/ath/ath11k/dp_tx.c:511 ath11k_dp_tx_update_txcompl() 
error: uninitialized symbol 'rate_idx'.

vim +/rate_idx +511 drivers/net/wireless/ath/ath11k/dp_tx.c

d5c65159f28953 Kalle Valo 2019-11-23  417  
1b8bb94c0612cf Wen Gong   2021-12-20  418  void 
ath11k_dp_tx_update_txcompl(struct ath11k *ar, struct hal_tx_status *ts)
1b8bb94c0612cf Wen Gong   2021-12-20  419  {
1b8bb94c0612cf Wen Gong   2021-12-20  420       struct ath11k_base *ab = ar->ab;
1b8bb94c0612cf Wen Gong   2021-12-20  421       struct ath11k_per_peer_tx_stats 
*peer_stats = &ar->cached_stats;
1b8bb94c0612cf Wen Gong   2021-12-20  422       enum hal_tx_rate_stats_pkt_type 
pkt_type;
1b8bb94c0612cf Wen Gong   2021-12-20  423       enum hal_tx_rate_stats_sgi sgi;
1b8bb94c0612cf Wen Gong   2021-12-20  424       enum hal_tx_rate_stats_bw bw;
1b8bb94c0612cf Wen Gong   2021-12-20  425       struct ath11k_peer *peer;
1b8bb94c0612cf Wen Gong   2021-12-20  426       struct ath11k_sta *arsta;
1b8bb94c0612cf Wen Gong   2021-12-20  427       struct ieee80211_sta *sta;
1b8bb94c0612cf Wen Gong   2021-12-20  428       u16 rate, ru_tones;
1b8bb94c0612cf Wen Gong   2021-12-20  429       u8 mcs, rate_idx, ofdma;
1b8bb94c0612cf Wen Gong   2021-12-20  430       int ret;
1b8bb94c0612cf Wen Gong   2021-12-20  431  
1b8bb94c0612cf Wen Gong   2021-12-20  432       spin_lock_bh(&ab->base_lock);
1b8bb94c0612cf Wen Gong   2021-12-20  433       peer = 
ath11k_peer_find_by_id(ab, ts->peer_id);
1b8bb94c0612cf Wen Gong   2021-12-20  434       if (!peer || !peer->sta) {
1b8bb94c0612cf Wen Gong   2021-12-20  435               ath11k_dbg(ab, 
ATH11K_DBG_DP_TX,
1b8bb94c0612cf Wen Gong   2021-12-20  436                          "failed to 
find the peer by id %u\n", ts->peer_id);
1b8bb94c0612cf Wen Gong   2021-12-20  437               goto err_out;
1b8bb94c0612cf Wen Gong   2021-12-20  438       }
1b8bb94c0612cf Wen Gong   2021-12-20  439  
1b8bb94c0612cf Wen Gong   2021-12-20  440       sta = peer->sta;
1b8bb94c0612cf Wen Gong   2021-12-20  441       arsta = (struct ath11k_sta 
*)sta->drv_priv;
1b8bb94c0612cf Wen Gong   2021-12-20  442  
1b8bb94c0612cf Wen Gong   2021-12-20  443       memset(&arsta->txrate, 0, 
sizeof(arsta->txrate));
1b8bb94c0612cf Wen Gong   2021-12-20  444       pkt_type = 
FIELD_GET(HAL_TX_RATE_STATS_INFO0_PKT_TYPE,
1b8bb94c0612cf Wen Gong   2021-12-20  445                            
ts->rate_stats);
1b8bb94c0612cf Wen Gong   2021-12-20  446       mcs = 
FIELD_GET(HAL_TX_RATE_STATS_INFO0_MCS,
1b8bb94c0612cf Wen Gong   2021-12-20  447                       ts->rate_stats);
1b8bb94c0612cf Wen Gong   2021-12-20  448       sgi = 
FIELD_GET(HAL_TX_RATE_STATS_INFO0_SGI,
1b8bb94c0612cf Wen Gong   2021-12-20  449                       ts->rate_stats);
1b8bb94c0612cf Wen Gong   2021-12-20  450       bw = 
FIELD_GET(HAL_TX_RATE_STATS_INFO0_BW, ts->rate_stats);
1b8bb94c0612cf Wen Gong   2021-12-20  451       ru_tones = 
FIELD_GET(HAL_TX_RATE_STATS_INFO0_TONES_IN_RU, ts->rate_stats);
1b8bb94c0612cf Wen Gong   2021-12-20  452       ofdma = 
FIELD_GET(HAL_TX_RATE_STATS_INFO0_OFDMA_TX, ts->rate_stats);
1b8bb94c0612cf Wen Gong   2021-12-20  453  
1b8bb94c0612cf Wen Gong   2021-12-20  454       /* This is to prefer choose the 
real NSS value arsta->last_txrate.nss,
1b8bb94c0612cf Wen Gong   2021-12-20  455        * if it is invalid, then 
choose the NSS value while assoc.
1b8bb94c0612cf Wen Gong   2021-12-20  456        */
1b8bb94c0612cf Wen Gong   2021-12-20  457       if (arsta->last_txrate.nss)
1b8bb94c0612cf Wen Gong   2021-12-20  458               arsta->txrate.nss = 
arsta->last_txrate.nss;
1b8bb94c0612cf Wen Gong   2021-12-20  459       else
1b8bb94c0612cf Wen Gong   2021-12-20  460               arsta->txrate.nss = 
arsta->peer_nss;
1b8bb94c0612cf Wen Gong   2021-12-20  461  
1b8bb94c0612cf Wen Gong   2021-12-20  462       if (pkt_type == 
HAL_TX_RATE_STATS_PKT_TYPE_11A ||
1b8bb94c0612cf Wen Gong   2021-12-20  463           pkt_type == 
HAL_TX_RATE_STATS_PKT_TYPE_11B) {
1b8bb94c0612cf Wen Gong   2021-12-20  464               ret = 
ath11k_mac_hw_ratecode_to_legacy_rate(mcs,
1b8bb94c0612cf Wen Gong   2021-12-20  465                                       
                    pkt_type,
1b8bb94c0612cf Wen Gong   2021-12-20  466                                       
                    &rate_idx,
1b8bb94c0612cf Wen Gong   2021-12-20  467                                       
                    &rate);
1b8bb94c0612cf Wen Gong   2021-12-20  468               if (ret < 0)
1b8bb94c0612cf Wen Gong   2021-12-20  469                       goto err_out;
1b8bb94c0612cf Wen Gong   2021-12-20  470               arsta->txrate.legacy = 
rate;
1b8bb94c0612cf Wen Gong   2021-12-20  471       } else if (pkt_type == 
HAL_TX_RATE_STATS_PKT_TYPE_11N) {
1b8bb94c0612cf Wen Gong   2021-12-20  472               if (mcs > 7) {
1b8bb94c0612cf Wen Gong   2021-12-20  473                       ath11k_warn(ab, 
"Invalid HT mcs index %d\n", mcs);
1b8bb94c0612cf Wen Gong   2021-12-20  474                       goto err_out;
1b8bb94c0612cf Wen Gong   2021-12-20  475               }
1b8bb94c0612cf Wen Gong   2021-12-20  476  
1b8bb94c0612cf Wen Gong   2021-12-20  477               if (arsta->txrate.nss 
!= 0)
1b8bb94c0612cf Wen Gong   2021-12-20  478                       
arsta->txrate.mcs = mcs + 8 * (arsta->txrate.nss - 1);
1b8bb94c0612cf Wen Gong   2021-12-20  479               arsta->txrate.flags = 
RATE_INFO_FLAGS_MCS;
1b8bb94c0612cf Wen Gong   2021-12-20  480               if (sgi)
1b8bb94c0612cf Wen Gong   2021-12-20  481                       
arsta->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
1b8bb94c0612cf Wen Gong   2021-12-20  482       } else if (pkt_type == 
HAL_TX_RATE_STATS_PKT_TYPE_11AC) {
1b8bb94c0612cf Wen Gong   2021-12-20  483               if (mcs > 9) {
1b8bb94c0612cf Wen Gong   2021-12-20  484                       ath11k_warn(ab, 
"Invalid VHT mcs index %d\n", mcs);
1b8bb94c0612cf Wen Gong   2021-12-20  485                       goto err_out;
1b8bb94c0612cf Wen Gong   2021-12-20  486               }
1b8bb94c0612cf Wen Gong   2021-12-20  487  
1b8bb94c0612cf Wen Gong   2021-12-20  488               arsta->txrate.mcs = mcs;
1b8bb94c0612cf Wen Gong   2021-12-20  489               arsta->txrate.flags = 
RATE_INFO_FLAGS_VHT_MCS;
1b8bb94c0612cf Wen Gong   2021-12-20  490               if (sgi)
1b8bb94c0612cf Wen Gong   2021-12-20  491                       
arsta->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
1b8bb94c0612cf Wen Gong   2021-12-20  492       } else if (pkt_type == 
HAL_TX_RATE_STATS_PKT_TYPE_11AX) {
1b8bb94c0612cf Wen Gong   2021-12-20  493               if (mcs > 11) {
1b8bb94c0612cf Wen Gong   2021-12-20  494                       ath11k_warn(ab, 
"Invalid HE mcs index %d\n", mcs);
1b8bb94c0612cf Wen Gong   2021-12-20  495                       goto err_out;
1b8bb94c0612cf Wen Gong   2021-12-20  496               }
1b8bb94c0612cf Wen Gong   2021-12-20  497  
1b8bb94c0612cf Wen Gong   2021-12-20  498               arsta->txrate.mcs = mcs;
1b8bb94c0612cf Wen Gong   2021-12-20  499               arsta->txrate.flags = 
RATE_INFO_FLAGS_HE_MCS;
1b8bb94c0612cf Wen Gong   2021-12-20  500               arsta->txrate.he_gi = 
ath11k_mac_he_gi_to_nl80211_he_gi(sgi);
1b8bb94c0612cf Wen Gong   2021-12-20  501       }
1b8bb94c0612cf Wen Gong   2021-12-20  502  
1b8bb94c0612cf Wen Gong   2021-12-20  503       arsta->txrate.bw = 
ath11k_mac_bw_to_mac80211_bw(bw);
1b8bb94c0612cf Wen Gong   2021-12-20  504       if (ofdma && pkt_type == 
HAL_TX_RATE_STATS_PKT_TYPE_11AX) {
1b8bb94c0612cf Wen Gong   2021-12-20  505               arsta->txrate.bw = 
RATE_INFO_BW_HE_RU;
1b8bb94c0612cf Wen Gong   2021-12-20  506               
arsta->txrate.he_ru_alloc =
1b8bb94c0612cf Wen Gong   2021-12-20  507                       
ath11k_mac_he_ru_tones_to_nl80211_he_ru_alloc(ru_tones);
1b8bb94c0612cf Wen Gong   2021-12-20  508       }
1b8bb94c0612cf Wen Gong   2021-12-20  509  
1b8bb94c0612cf Wen Gong   2021-12-20  510       if 
(ath11k_debugfs_is_extd_tx_stats_enabled(ar))
1b8bb94c0612cf Wen Gong   2021-12-20 @511               
ath11k_debugfs_sta_add_tx_stats(arsta, peer_stats, rate_idx);
1b8bb94c0612cf Wen Gong   2021-12-20  512  
1b8bb94c0612cf Wen Gong   2021-12-20  513  err_out:
1b8bb94c0612cf Wen Gong   2021-12-20  514       spin_unlock_bh(&ab->base_lock);
1b8bb94c0612cf Wen Gong   2021-12-20  515  }
1b8bb94c0612cf Wen Gong   2021-12-20  516  

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

Reply via email to