diff mbox series

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

Message ID e4d912a2-37f8-4068-8861-7b9494ae731b@kili.mountain
State New
Headers show
Series wifi: rtw89: fix rtw89_read_chip_ver() for RTL8852B and RTL8851B | expand

Commit Message

Dan Carpenter April 21, 2023, 10:44 a.m. UTC
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 <dan.carpenter@linaro.org>
---
 drivers/net/wireless/realtek/rtw89/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Ping-Ke Shih April 21, 2023, 11:48 a.m. UTC | #1
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 <dan.carpenter@linaro.org>

Acked-by: Ping-Ke Shih <pkshih@realtek.com>

> ---
>  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.
Dan Carpenter April 21, 2023, 12:39 p.m. UTC | #2
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
Kalle Valo May 5, 2023, 12:01 p.m. UTC | #3
Dan Carpenter <dan.carpenter@linaro.org> 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 <dan.carpenter@linaro.org>
> Acked-by: Ping-Ke Shih <pkshih@realtek.com>

Patch applied to wireless-next.git, thanks.

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

Patch

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);