Skip to contentSkip to conversation

wifi: rtw89: fix some coverity warnings

PATCH In review Ping-Ke Shih 1 participant 5 messages Sep 19, 2024 – Sep 26, 2024 Realtek wireless driver (rtw89)

lore
Share & tools
lore

Ping-Ke Shih

author maintainer
#0 lore raw

cover wifi: rtw89: fix some coverity warnings

These warnings are minor because they could happen rarely or harmless, but worth to fix them.

Ping-Ke Shih (3):
wifi: rtw89: check return value of ieee80211_probereq_get() for RNR
wifi: rtw89: coex: initialize local .dbcc_2g_phy in _set_btg_ctrl()
wifi: rtw89: 8852c: rfk: remove unnecessary assignment of return value
of _dpk_dgain_read()

 drivers/net/wireless/realtek/rtw89/coex.c         | 2 ++
 drivers/net/wireless/realtek/rtw89/fw.c           | 3 +++
 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c | 2 +-
 3 files changed, 6 insertions(+), 1 deletion(-)
Signature · 1 line
2.25.1
author maintainer
#1 lore raw

PATCH 1/3 wifi: rtw89: check return value of ieee80211_probereq_get() for RNR

The return value of ieee80211_probereq_get() might be NULL, so check it before using to avoid NULL pointer access.

Addresses-Coverity-ID: 1529805 ("Dereference null return value")

---
 drivers/net/wireless/realtek/rtw89/fw.c | 3 +++
 1 file changed, 3 insertions(+)
drivers/net/wireless/realtek/rtw89/fw.c +3 -0
index 37f931e88791..02831514376f 100644
@@ -6074,6 +6074,9 @@ static int rtw89_update_6ghz_rnr_chan(struct rtw89_dev *rtwdev,
 
 		skb = ieee80211_probereq_get(rtwdev->hw, rtwvif_link->mac_addr,
 					     NULL, 0, req->ie_len);
+		if (!skb)
+			return -ENOMEM;
+
 		skb_put_data(skb, ies->ies[NL80211_BAND_6GHZ], ies->len[NL80211_BAND_6GHZ]);
 		skb_put_data(skb, ies->common_ies, ies->common_ie_len);
 		hdr = (struct ieee80211_hdr *)skb->data;
Signature · 1 line
2.25.1
author maintainer
#2 lore raw

Re: [PATCH 1/3] wifi: rtw89: check return value of ieee80211_probereq_get() for RNR

Quoted 6 lines · Ping-Ke Shih

The return value of ieee80211_probereq_get() might be NULL, so check it before using to avoid NULL pointer access.

Addresses-Coverity-ID: 1529805 ("Dereference null return value")

3 patch(es) applied to rtw-next branch of rtw.git, thanks.

630d5d8f2bf6 wifi: rtw89: check return value of ieee80211_probereq_get() for RNR 6cdfb5659624 wifi: rtw89: coex: initialize local .dbcc_2g_phy in _set_btg_ctrl() 7bf2f8fe4237 wifi: rtw89: 8852c: rfk: remove unnecessary assignment of return value of _dpk_dgain_read()

---
https://github.com/pkshih/rtw.git

author maintainer
#3 lore raw

PATCH 2/3 wifi: rtw89: coex: initialize local .dbcc_2g_phy in _set_btg_ctrl()

In reply to Ping-Ke Shih

For the case of DBCC enabled and fwrole version 0, the local variable wl_rinfo.dbcc_2g_phy might not be set by following for-loop, leading uninitialized variable before using.

Addresses-Coverity-ID: 1586724 ("Uninitialized scalar variable")

---
 drivers/net/wireless/realtek/rtw89/coex.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/net/wireless/realtek/rtw89/coex.c +2 -0
index 3b3fd451e445..6da1193422fb 100644
@@ -4855,6 +4855,8 @@ static void _set_btg_ctrl(struct rtw89_dev *rtwdev)
 
 	if (rtwdev->dbcc_en) {
 		if (ver->fwlrole == 0) {
+			wl_rinfo.dbcc_2g_phy = RTW89_PHY_MAX;
+
 			for (i = 0; i < RTW89_PHY_MAX; i++) {
 				if (wl_dinfo->real_band[i] == RTW89_BAND_2G)
 					wl_rinfo.dbcc_2g_phy = i;
Signature · 1 line
2.25.1
author maintainer
#4 lore raw

PATCH 3/3 wifi: rtw89: 8852c: rfk: remove unnecessary assignment of return value of _dpk_dgain_read()

In reply to Ping-Ke Shih

The return value of _dpk_dgain_read() is not used afterward, so remove it safely.

Addresses-Coverity-ID: 1504753 ("Unused value")

---
 drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/wireless/realtek/rtw89/rtw8852c_rfk.c +1 -1
index 211c051c2967..3281ee9d7523 100644
@@ -2350,7 +2350,7 @@ static u8 _dpk_agc(struct rtw89_dev *rtwdev, enum rtw89_phy_idx phy,
 
 			if (dgain > 0x5fc || dgain < 0x556) {
 				_dpk_one_shot(rtwdev, phy, path, D_SYNC);
-				dgain = _dpk_dgain_read(rtwdev);
+				_dpk_dgain_read(rtwdev);
 			}
 
 			if (agc_cnt == 0) {
Signature · 1 line
2.25.1