Search Linux Wireless

Re: [PATCH] wifi: rtl8xxxu: 8188e: parse single one element of RA report for station mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 16/02/2023 02:46, Ping-Ke Shih wrote:
> Intentionally parsing single one element of RA report by breaking loop
> causes a smatch warning:
>   drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c:1678 rtl8188e_handle_ra_tx_report2() warn:
>   ignoring unreachable code.
> 
> With existing comments, it intends to process single one element for
> station mode, but it will parse more elements in AP mode if it's
> implemented. Implement program logic according to existing comment to avoid
> smatch warning, and also be usable for both AP and stations modes.
> 
> Compile test only.
> 
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Reported-by: Dan Carpenter <error27@xxxxxxxxx>
> Link: https://lore.kernel.org/r/202302142135.LCqUTVGY-lkp@xxxxxxxxx/
> Cc: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
> Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
> ---
>  .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c   | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c
> index a99ddb41cd244..f15b099899e5c 100644
> --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c
> +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c
> @@ -1699,6 +1699,12 @@ void rtl8188e_handle_ra_tx_report2(struct rtl8xxxu_priv *priv, struct sk_buff *s
>  
>  	dev_dbg(dev, "%s: len: %d items: %d\n", __func__, tx_rpt_len, items);
>  
> +	/* We only use macid 0, so only the first item is relevant.
> +	 * AP mode will use more of them if it's ever implemented.
> +	 */
> +	if (!priv->vif || priv->vif->type == NL80211_IFTYPE_STATION)
> +		items = 1;
> +
>  	for (macid = 0; macid < items; macid++) {
>  		valid = false;
>  
> @@ -1741,12 +1747,6 @@ void rtl8188e_handle_ra_tx_report2(struct rtl8xxxu_priv *priv, struct sk_buff *s
>  			min_rpt_time = ra->rpt_time;
>  
>  		rpt += TX_RPT2_ITEM_SIZE;
> -
> -		/*
> -		 * We only use macid 0, so only the first item is relevant.
> -		 * AP mode will use more of them if it's ever implemented.
> -		 */
> -		break;
>  	}
>  
>  	if (min_rpt_time != ra->pre_min_rpt_time) {

Tested-by: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux