[bug report] wifi: ath12k: uninitialized variables
Dan Carpenter
error27 at gmail.com
Thu Feb 16 06:01:11 PST 2023
Hello Kalle Valo,
The patch d889913205cf: "wifi: ath12k: driver for Qualcomm Wi-Fi 7
devices" from Nov 28, 2022, leads to the following Smatch static
checker warning:
drivers/net/wireless/ath/ath12k/dp_mon.c:2029 ath12k_dp_mon_tx_parse_mon_status() error: uninitialized symbol 'num_user'.
drivers/net/wireless/ath/ath12k/dp.c:210 ath12k_dp_srng_msi_setup() error: uninitialized symbol 'addr_lo'.
drivers/net/wireless/ath/ath12k/dp.c:211 ath12k_dp_srng_msi_setup() error: uninitialized symbol 'addr_hi'.
drivers/net/wireless/ath/ath12k/mac.c:1630 ath12k_peer_assoc_h_he() error: uninitialized symbol 'rx_mcs_80'.
drivers/net/wireless/ath/ath12k/mac.c:1630 ath12k_peer_assoc_h_he() error: uninitialized symbol 'rx_mcs_160'.
drivers/net/wireless/ath/ath12k/mac.c:1632 ath12k_peer_assoc_h_he() error: uninitialized symbol 'rx_mcs_80'.
drivers/net/wireless/ath/ath12k/ce.c:485 ath12k_ce_srng_msi_ring_params_setup() error: uninitialized symbol 'addr_lo'.
drivers/net/wireless/ath/ath12k/ce.c:486 ath12k_ce_srng_msi_ring_params_setup() error: uninitialized symbol 'addr_hi'.
drivers/net/wireless/ath/ath12k/dp_mon.c
2002 enum hal_rx_mon_status
2003 ath12k_dp_mon_tx_parse_mon_status(struct ath12k *ar,
2004 struct ath12k_mon_data *pmon,
2005 int mac_id,
2006 struct sk_buff *skb,
2007 struct napi_struct *napi,
2008 u32 ppdu_id)
2009 {
2010 struct ath12k_base *ab = ar->ab;
2011 struct dp_mon_tx_ppdu_info *tx_prot_ppdu_info, *tx_data_ppdu_info;
2012 struct hal_tlv_hdr *tlv;
2013 u8 *ptr = skb->data;
2014 u16 tlv_tag;
2015 u16 tlv_len;
2016 u32 tlv_userid = 0;
2017 u8 num_user;
2018 u32 tlv_status = DP_MON_TX_STATUS_PPDU_NOT_DONE;
2019
2020 tx_prot_ppdu_info = ath12k_dp_mon_tx_get_ppdu_info(pmon, ppdu_id,
2021 DP_MON_TX_PROT_PPDU_INFO);
2022 if (!tx_prot_ppdu_info)
2023 return -ENOMEM;
2024
2025 tlv = (struct hal_tlv_hdr *)ptr;
2026 tlv_tag = le32_get_bits(tlv->tl, HAL_TLV_HDR_TAG);
2027
2028 tlv_status = ath12k_dp_mon_tx_status_get_num_user(tlv_tag, tlv, &num_user);
--> 2029 if (tlv_status == DP_MON_TX_STATUS_PPDU_NOT_DONE || !num_user)
num_user is not intialized if tlv_status == DP_MON_RX_RESPONSE_REQUIRED_INFO.
2030 return -EINVAL;
2031
2032 tx_data_ppdu_info = ath12k_dp_mon_tx_get_ppdu_info(pmon, ppdu_id,
2033 DP_MON_TX_DATA_PPDU_INFO);
2034 if (!tx_data_ppdu_info)
2035 return -ENOMEM;
2036
regards,
dan carpenter
More information about the ath12k
mailing list