RE: [PATCH] rtlwifi: rtl8192se: remove redundant rtl_get_bbreg call

From: Ping-Ke Shih
Date: Mon Dec 05 2022 - 21:02:47 EST



> -----Original Message-----
> From: Peter Kosyh <pkosyh@xxxxxxxxx>
> Sent: Monday, December 5, 2022 4:54 PM
> To: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
> Cc: Peter Kosyh <pkosyh@xxxxxxxxx>; David S. Miller <davem@xxxxxxxxxxxxx>; Eric Dumazet
> <edumazet@xxxxxxxxxx>; Kalle Valo <kvalo@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni
> <pabeni@xxxxxxxxxx>; linux-wireless@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; lvc-project@xxxxxxxxxxxxxxxx
> Subject: [PATCH] rtlwifi: rtl8192se: remove redundant rtl_get_bbreg call
>
> Extra rtl_get_bbreg looks like redundant reading. The read has
> already been done in the "else" branch. Compile test only.

Originally, the code is

01 if (rfpi_enable)
02 val = get_from_interface_A();
03 else
04 val = get_from_interface_B();
05
06 val = get_from_interface_B();

This patch is to remove line 06, and it looks like logic is changed. However,
'rfpi_enable' is decided by 0x820[8] and 0x828[8] set by rtl8192sephy_reg_2t2rarray[]
table, and 'rfpi_enable' is always false. I think this is why nobody can't
encounter problem and find this bug.

>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Signed-off-by: Peter Kosyh <pkosyh@xxxxxxxxx>

Acked-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>

> ---
> If this code is important for the operation of the hardware, then it would
> be nice to comment on it.
>
> drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
> b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
> index aaa004d4d6d0..09591a0b5a81 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
> @@ -115,9 +115,6 @@ static u32 _rtl92s_phy_rf_serial_read(struct ieee80211_hw *hw,
> retvalue = rtl_get_bbreg(hw, pphyreg->rf_rb,
> BLSSI_READBACK_DATA);
>
> - retvalue = rtl_get_bbreg(hw, pphyreg->rf_rb,
> - BLSSI_READBACK_DATA);
> -
> rtl_dbg(rtlpriv, COMP_RF, DBG_TRACE, "RFR-%d Addr[0x%x]=0x%x\n",
> rfpath, pphyreg->rf_rb, retvalue);
>
> --
> 2.38.1