[ath:ath12k-ng 74/78] drivers/net/wireless/ath/ath12k/dp_htt.c:192:31: warning: variable 'sta' set but not used
kernel test robot
lkp at intel.com
Fri May 23 17:52:57 PDT 2025
tree: https://git.kernel.org/pub/scm/linux/kernel/git/ath/ath.git ath12k-ng
head: 5bac8411df2e147f11875a88c4d6c36fcedd27df
commit: afe9933912ff5b8120f20d922c62c0b44b8257e9 [74/78] wifi: ath12k: Move link stats from CP Object
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20250524/202505240842.3pOJN2OV-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250524/202505240842.3pOJN2OV-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202505240842.3pOJN2OV-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/net/wireless/ath/ath12k/dp_htt.c: In function 'ath12k_update_per_peer_tx_stats':
>> drivers/net/wireless/ath/ath12k/dp_htt.c:192:31: warning: variable 'sta' set but not used [-Wunused-but-set-variable]
192 | struct ieee80211_sta *sta;
| ^~~
vim +/sta +192 drivers/net/wireless/ath/ath12k/dp_htt.c
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 184
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 185 static void
cdc69bd51a4340 Ripan Deuri 2025-05-16 186 ath12k_update_per_peer_tx_stats(struct ath12k_pdev_dp *dp_pdev,
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 187 struct htt_ppdu_stats *ppdu_stats, u8 user)
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 188 {
e01af4e7193a9d Harsh Kumar Bijlani 2025-05-07 189 struct ath12k_dp_link_peer *peer;
cdc69bd51a4340 Ripan Deuri 2025-05-16 190 struct ath12k_dp *dp = dp_pdev->dp;
cdc69bd51a4340 Ripan Deuri 2025-05-16 191 struct ath12k_base *ab = dp->ab;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 @192 struct ieee80211_sta *sta;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 193 struct htt_ppdu_stats_user_rate *user_rate;
cdc69bd51a4340 Ripan Deuri 2025-05-16 194 struct ath12k_per_peer_tx_stats *peer_stats = &dp_pdev->peer_tx_stats;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 195 struct htt_ppdu_user_stats *usr_stats = &ppdu_stats->user_stats[user];
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 196 struct htt_ppdu_stats_common *common = &ppdu_stats->common;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 197 int ret;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 198 u8 flags, mcs, nss, bw, sgi, dcm, rate_idx = 0;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 199 u32 v, succ_bytes = 0;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 200 u16 tones, rate = 0, succ_pkts = 0;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 201 u32 tx_duration = 0;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 202 u8 tid = HTT_PPDU_STATS_NON_QOS_TID;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 203 bool is_ampdu = false;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 204
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 205 if (!(usr_stats->tlv_flags & BIT(HTT_PPDU_STATS_TAG_USR_RATE)))
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 206 return;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 207
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 208 if (usr_stats->tlv_flags & BIT(HTT_PPDU_STATS_TAG_USR_COMPLTN_COMMON))
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 209 is_ampdu =
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 210 HTT_USR_CMPLTN_IS_AMPDU(usr_stats->cmpltn_cmn.flags);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 211
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 212 if (usr_stats->tlv_flags &
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 213 BIT(HTT_PPDU_STATS_TAG_USR_COMPLTN_ACK_BA_STATUS)) {
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 214 succ_bytes = le32_to_cpu(usr_stats->ack_ba.success_bytes);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 215 succ_pkts = le32_get_bits(usr_stats->ack_ba.info,
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 216 HTT_PPDU_STATS_ACK_BA_INFO_NUM_MSDU_M);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 217 tid = le32_get_bits(usr_stats->ack_ba.info,
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 218 HTT_PPDU_STATS_ACK_BA_INFO_TID_NUM);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 219 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 220
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 221 if (common->fes_duration_us)
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 222 tx_duration = le32_to_cpu(common->fes_duration_us);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 223
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 224 user_rate = &usr_stats->rate;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 225 flags = HTT_USR_RATE_PREAMBLE(user_rate->rate_flags);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 226 bw = HTT_USR_RATE_BW(user_rate->rate_flags) - 2;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 227 nss = HTT_USR_RATE_NSS(user_rate->rate_flags) + 1;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 228 mcs = HTT_USR_RATE_MCS(user_rate->rate_flags);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 229 sgi = HTT_USR_RATE_GI(user_rate->rate_flags);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 230 dcm = HTT_USR_RATE_DCM(user_rate->rate_flags);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 231
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 232 /* Note: If host configured fixed rates and in some other special
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 233 * cases, the broadcast/management frames are sent in different rates.
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 234 * Firmware rate's control to be skipped for this?
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 235 */
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 236
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 237 if (flags == WMI_RATE_PREAMBLE_HE && mcs > ATH12K_HE_MCS_MAX) {
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 238 ath12k_warn(ab, "Invalid HE mcs %d peer stats", mcs);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 239 return;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 240 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 241
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 242 if (flags == WMI_RATE_PREAMBLE_VHT && mcs > ATH12K_VHT_MCS_MAX) {
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 243 ath12k_warn(ab, "Invalid VHT mcs %d peer stats", mcs);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 244 return;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 245 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 246
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 247 if (flags == WMI_RATE_PREAMBLE_HT && (mcs > ATH12K_HT_MCS_MAX || nss < 1)) {
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 248 ath12k_warn(ab, "Invalid HT mcs %d nss %d peer stats",
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 249 mcs, nss);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 250 return;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 251 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 252
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 253 if (flags == WMI_RATE_PREAMBLE_CCK || flags == WMI_RATE_PREAMBLE_OFDM) {
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 254 ret = ath12k_mac_hw_ratecode_to_legacy_rate(mcs,
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 255 flags,
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 256 &rate_idx,
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 257 &rate);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 258 if (ret < 0)
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 259 return;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 260 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 261
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 262 rcu_read_lock();
629b3618ded69c Harsh Kumar Bijlani 2025-05-20 263 spin_lock_bh(&dp->dp_lock);
629b3618ded69c Harsh Kumar Bijlani 2025-05-20 264 peer = ath12k_dp_link_peer_find_by_id(dp, usr_stats->peer_id);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 265
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 266 if (!peer || !peer->sta) {
629b3618ded69c Harsh Kumar Bijlani 2025-05-20 267 spin_unlock_bh(&dp->dp_lock);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 268 rcu_read_unlock();
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 269 return;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 270 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 271
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 272 sta = peer->sta;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 273
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 274 memset(&peer->txrate, 0, sizeof(peer->txrate));
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 275
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 276 switch (flags) {
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 277 case WMI_RATE_PREAMBLE_OFDM:
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 278 peer->txrate.legacy = rate;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 279 break;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 280 case WMI_RATE_PREAMBLE_CCK:
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 281 peer->txrate.legacy = rate;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 282 break;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 283 case WMI_RATE_PREAMBLE_HT:
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 284 peer->txrate.mcs = mcs + 8 * (nss - 1);
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 285 peer->txrate.flags = RATE_INFO_FLAGS_MCS;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 286 if (sgi)
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 287 peer->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 288 break;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 289 case WMI_RATE_PREAMBLE_VHT:
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 290 peer->txrate.mcs = mcs;
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 291 peer->txrate.flags = RATE_INFO_FLAGS_VHT_MCS;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 292 if (sgi)
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 293 peer->txrate.flags |= RATE_INFO_FLAGS_SHORT_GI;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 294 break;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 295 case WMI_RATE_PREAMBLE_HE:
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 296 peer->txrate.mcs = mcs;
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 297 peer->txrate.flags = RATE_INFO_FLAGS_HE_MCS;
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 298 peer->txrate.he_dcm = dcm;
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 299 peer->txrate.he_gi = ath12k_he_gi_to_nl80211_he_gi(sgi);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 300 tones = le16_to_cpu(user_rate->ru_end) -
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 301 le16_to_cpu(user_rate->ru_start) + 1;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 302 v = ath12k_he_ru_tones_to_nl80211_he_ru_alloc(tones);
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 303 peer->txrate.he_ru_alloc = v;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 304 break;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 305 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 306
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 307 peer->txrate.nss = nss;
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 308 peer->txrate.bw = ath12k_mac_bw_to_mac80211_bw(bw);
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 309 peer->tx_duration += tx_duration;
afe9933912ff5b Harsh Kumar Bijlani 2025-05-12 310 memcpy(&peer->last_txrate, &peer->txrate, sizeof(struct rate_info));
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 311
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 312 /* PPDU stats reported for mgmt packet doesn't have valid tx bytes.
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 313 * So skip peer stats update for mgmt packets.
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 314 */
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 315 if (tid < HTT_PPDU_STATS_NON_QOS_TID) {
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 316 memset(peer_stats, 0, sizeof(*peer_stats));
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 317 peer_stats->succ_pkts = succ_pkts;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 318 peer_stats->succ_bytes = succ_bytes;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 319 peer_stats->is_ampdu = is_ampdu;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 320 peer_stats->duration = tx_duration;
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 321 peer_stats->ba_fails =
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 322 HTT_USR_CMPLTN_LONG_RETRY(usr_stats->cmpltn_cmn.flags) +
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 323 HTT_USR_CMPLTN_SHORT_RETRY(usr_stats->cmpltn_cmn.flags);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 324 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 325
629b3618ded69c Harsh Kumar Bijlani 2025-05-20 326 spin_unlock_bh(&dp->dp_lock);
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 327 rcu_read_unlock();
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 328 }
c62ffbef4c063e Harsh Kumar Bijlani 2025-05-16 329
:::::: The code at line 192 was first introduced by commit
:::::: c62ffbef4c063e16a6c7a0bfcc9b446059d98448 wifi: ath12k: Move HTT Rx specific code to newly introduced files
:::::: TO: Harsh Kumar Bijlani <quic_hbijlani at quicinc.com>
:::::: CC: Jeff Johnson <jeff.johnson at oss.qualcomm.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the ath12k
mailing list