From: Dan Carpenter <dan.carpenter@linaro.org>
To: Alok Singh <quic_aloksing@quicinc.com>
Cc: ath12k@lists.infradead.org
Subject: [bug report] wifi: ath12k: Move TX monitor functionality to Wi-Fi 7 module
Date: Wed, 17 Dec 2025 10:42:56 +0300 [thread overview]
Message-ID: <aUJfAFmpAX3ZIv8N@stanley.mountain> (raw)
Hello Alok Singh,
Commit 52758ff7b50a ("wifi: ath12k: Move TX monitor functionality to
Wi-Fi 7 module") from Nov 10, 2025 (linux-next), leads to the
following Smatch static checker warning:
drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c:2537 ath12k_wifi7_dp_mon_tx_parse_mon_status()
error: uninitialized symbol 'num_user'.
drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c
2508 enum hal_rx_mon_status
2509 ath12k_wifi7_dp_mon_tx_parse_mon_status(struct ath12k_pdev_dp *dp_pdev,
2510 struct ath12k_mon_data *pmon,
2511 struct sk_buff *skb,
2512 struct napi_struct *napi,
2513 u32 ppdu_id)
2514 {
2515 struct ath12k_dp *dp = dp_pdev->dp;
2516 struct ath12k_base *ab = dp->ab;
2517 struct dp_mon_tx_ppdu_info *tx_prot_ppdu_info, *tx_data_ppdu_info;
2518 struct hal_tlv_hdr *tlv;
2519 u8 *ptr = skb->data;
2520 u16 tlv_tag;
2521 u16 tlv_len;
2522 u32 tlv_userid = 0;
2523 u8 num_user;
2524 u32 tlv_status = DP_MON_TX_STATUS_PPDU_NOT_DONE;
2525
2526 tx_prot_ppdu_info =
2527 ath12k_wifi7_dp_mon_tx_get_ppdu_info(pmon, ppdu_id,
2528 DP_MON_TX_PROT_PPDU_INFO);
2529 if (!tx_prot_ppdu_info)
2530 return -ENOMEM;
2531
2532 tlv = (struct hal_tlv_hdr *)ptr;
2533 tlv_tag = le32_get_bits(tlv->tl, HAL_TLV_HDR_TAG);
2534
2535 tlv_status = ath12k_wifi7_dp_mon_tx_status_get_num_user(tlv_tag, tlv,
2536 &num_user);
--> 2537 if (tlv_status == DP_MON_TX_STATUS_PPDU_NOT_DONE || !num_user)
2538 return -EINVAL;
You didn't really introduce this bug, the patch just moves code around
so the scripts mark it as a new bug again. If the
ath12k_wifi7_dp_mon_tx_status_get_num_user() function returns
DP_MON_RX_RESPONSE_REQUIRED_INFO then "num_user" is uninitialized.
There is a comment which says this needs to be fixed:
/* TODO: need to update *num_users */
2539
2540 tx_data_ppdu_info =
2541 ath12k_wifi7_dp_mon_tx_get_ppdu_info(pmon, ppdu_id,
2542 DP_MON_TX_DATA_PPDU_INFO);
2543 if (!tx_data_ppdu_info)
2544 return -ENOMEM;
2545
2546 do {
2547 tlv = (struct hal_tlv_hdr *)ptr;
2548 tlv_tag = le32_get_bits(tlv->tl, HAL_TLV_HDR_TAG);
2549 tlv_len = le32_get_bits(tlv->tl, HAL_TLV_HDR_LEN);
2550 tlv_userid = le32_get_bits(tlv->tl, HAL_TLV_USR_ID);
2551
2552 tlv_status = ath12k_wifi7_dp_mon_tx_parse_status_tlv(ab, pmon,
2553 tlv_tag, ptr,
2554 tlv_userid);
2555 ptr += tlv_len;
2556 ptr = PTR_ALIGN(ptr, HAL_TLV_ALIGN);
2557 if ((ptr - skb->data) >= DP_TX_MONITOR_BUF_SIZE)
2558 break;
2559 } while (tlv_status != DP_MON_TX_FES_STATUS_END);
2560
2561 ath12k_wifi7_dp_mon_tx_process_ppdu_info(dp_pdev, napi, tx_data_ppdu_info);
2562 ath12k_wifi7_dp_mon_tx_process_ppdu_info(dp_pdev, napi, tx_prot_ppdu_info);
2563
2564 return tlv_status;
2565 }
regards,
dan carpenter
reply other threads:[~2025-12-17 7:43 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aUJfAFmpAX3ZIv8N@stanley.mountain \
--to=dan.carpenter@linaro.org \
--cc=ath12k@lists.infradead.org \
--cc=quic_aloksing@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.