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>