2023-04-21 10:46:42

by Dan Carpenter

[permalink] [raw]
Subject: [PATCH] wifi: rtw89: fix rtw89_read_chip_ver() for RTL8852B and RTL8851B

The if statement is reversed so it will not record the chip version.
This was detected using Smatch:

drivers/net/wireless/realtek/rtw89/core.c:3593 rtw89_read_chip_ver()
error: uninitialized symbol 'val'.

Fixes: a6fb2bb84654 ("wifi: rtw89: read version of analog hardware")
Signed-off-by: Dan Carpenter <[email protected]>
---
drivers/net/wireless/realtek/rtw89/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 7fc0a26a4d73..1d462c9e46d9 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -3587,7 +3587,7 @@ static void rtw89_read_chip_ver(struct rtw89_dev *rtwdev)

if (chip->chip_id == RTL8852B || chip->chip_id == RTL8851B) {
ret = rtw89_mac_read_xtal_si(rtwdev, XTAL_SI_CV, &val);
- if (!ret)
+ if (ret)
return;

rtwdev->hal.acv = u8_get_bits(val, XTAL_SI_ACV_MASK);
--
2.39.2


2023-04-21 11:52:37

by Ping-Ke Shih

[permalink] [raw]
Subject: Re: [PATCH] wifi: rtw89: fix rtw89_read_chip_ver() for RTL8852B and RTL8851B

On Fri, 2023-04-21 at 13:44 +0300, Dan Carpenter wrote:
>
> The if statement is reversed so it will not record the chip version.
> This was detected using Smatch:
>
> drivers/net/wireless/realtek/rtw89/core.c:3593 rtw89_read_chip_ver()
> error: uninitialized symbol 'val'.

I use smatch to check our driver regularly, but I can't find this error.
With the latest version v0.5.0-8321-g556064ca, I still can't find it.
Do I need to specify additional arguments? Thanks.

>
> Fixes: a6fb2bb84654 ("wifi: rtw89: read version of analog hardware")
> Signed-off-by: Dan Carpenter <[email protected]>

Acked-by: Ping-Ke Shih <[email protected]>

> ---
> drivers/net/wireless/realtek/rtw89/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
> index 7fc0a26a4d73..1d462c9e46d9 100644
> --- a/drivers/net/wireless/realtek/rtw89/core.c
> +++ b/drivers/net/wireless/realtek/rtw89/core.c
> @@ -3587,7 +3587,7 @@ static void rtw89_read_chip_ver(struct rtw89_dev *rtwdev)
>
> if (chip->chip_id == RTL8852B || chip->chip_id == RTL8851B) {
> ret = rtw89_mac_read_xtal_si(rtwdev, XTAL_SI_CV, &val);
> - if (!ret)
> + if (ret)
> return;
>
> rtwdev->hal.acv = u8_get_bits(val, XTAL_SI_ACV_MASK);
> --
> 2.39.2
>
>
> ------Please consider the environment before printing this e-mail.


2023-04-22 19:56:11

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] wifi: rtw89: fix rtw89_read_chip_ver() for RTL8852B and RTL8851B

On Fri, Apr 21, 2023 at 11:48:43AM +0000, Ping-Ke Shih wrote:
> On Fri, 2023-04-21 at 13:44 +0300, Dan Carpenter wrote:
> >
> > The if statement is reversed so it will not record the chip version.
> > This was detected using Smatch:
> >
> > drivers/net/wireless/realtek/rtw89/core.c:3593 rtw89_read_chip_ver()
> > error: uninitialized symbol 'val'.
>
> I use smatch to check our driver regularly, but I can't find this error.
> With the latest version v0.5.0-8321-g556064ca, I still can't find it.
> Do I need to specify additional arguments? Thanks.
>

You need the cross function database (which takes like 9 hours to build).

~/smatch/smatch_scripts/build_kernel_data.sh

regards,
dan carpenter

2023-05-05 12:03:42

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] wifi: rtw89: fix rtw89_read_chip_ver() for RTL8852B and RTL8851B

Dan Carpenter <[email protected]> wrote:

> The if statement is reversed so it will not record the chip version.
> This was detected using Smatch:
>
> drivers/net/wireless/realtek/rtw89/core.c:3593 rtw89_read_chip_ver()
> error: uninitialized symbol 'val'.
>
> Fixes: a6fb2bb84654 ("wifi: rtw89: read version of analog hardware")
> Signed-off-by: Dan Carpenter <[email protected]>
> Acked-by: Ping-Ke Shih <[email protected]>

Patch applied to wireless-next.git, thanks.

9d4f491b860e wifi: rtw89: fix rtw89_read_chip_ver() for RTL8852B and RTL8851B

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches