Re: [PATCH next] wifi: mt76: mt7925: fix error checking in mt7925_mcu_uni_rx/tx_ba()

From: Mingyen Hsieh (謝明諺)
Date: Tue Feb 18 2025 - 21:15:46 EST


On Tue, 2025-02-18 at 16:15 +0300, Dan Carpenter wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>
>
> Ping.
>
> regards,
> dan carpenter
>
> On Mon, Jan 20, 2025 at 12:46:58PM +0300, Dan Carpenter wrote:
> > The "ret" variable in mt7925_mcu_uni_[rx/tx]_ba() needs to be
> > signed for
> > the if (ret < 0) condition to be true.
> >
> > Also the mt7925_mcu_sta_ba() function returns positive values on
> > success.
> > The code currently returns whatever non-negative value was returned
> > on
> > the last iteration.  It would be better to return zero on success. 
> > This
> > function is called from mt7925_ampdu_action() which does not check
> > the
> > return value so the return value doesn't affect runtime.  However,
> > it
> > still makes sense to return zero even though nothing is affected in
> > the
> > current code.
> >
> > Fixes: eb2a9a12c609 ("wifi: mt76: mt7925: Update
> > mt7925_mcu_uni_[tx,rx]_ba for MLO")
> > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> > ---
> >  drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 14 ++++++++-----
> > -
> >  1 file changed, 8 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
> > b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
> > index 15815ad84713..b3a00964e802 100644
> > --- a/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
> > +++ b/drivers/net/wireless/mediatek/mt76/mt7925/mcu.c
> > @@ -617,7 +617,8 @@ int mt7925_mcu_uni_tx_ba(struct mt792x_dev
> > *dev,
> >       struct mt792x_bss_conf *mconf;
> >       unsigned long usable_links = ieee80211_vif_usable_links(vif);
> >       struct mt76_wcid *wcid;
> > -     u8 link_id, ret;
> > +     u8 link_id;
> > +     int ret;
> >
> >       for_each_set_bit(link_id, &usable_links,
> > IEEE80211_MLD_MAX_NUM_LINKS) {
> >               mconf = mt792x_vif_to_link(mvif, link_id);
> > @@ -630,10 +631,10 @@ int mt7925_mcu_uni_tx_ba(struct mt792x_dev
> > *dev,
> >               ret = mt7925_mcu_sta_ba(&dev->mt76, &mconf->mt76,
> > wcid, params,
> >                                       enable, true);
> >               if (ret < 0)
> > -                     break;
> > +                     return ret;
> >       }
> >
> > -     return ret;
> > +     return 0;
> >  }
> >
> >  int mt7925_mcu_uni_rx_ba(struct mt792x_dev *dev,
> > @@ -647,7 +648,8 @@ int mt7925_mcu_uni_rx_ba(struct mt792x_dev
> > *dev,
> >       struct mt792x_bss_conf *mconf;
> >       unsigned long usable_links = ieee80211_vif_usable_links(vif);
> >       struct mt76_wcid *wcid;
> > -     u8 link_id, ret;
> > +     u8 link_id;
> > +     int ret;
> >
> >       for_each_set_bit(link_id, &usable_links,
> > IEEE80211_MLD_MAX_NUM_LINKS) {
> >               mconf = mt792x_vif_to_link(mvif, link_id);
> > @@ -657,10 +659,10 @@ int mt7925_mcu_uni_rx_ba(struct mt792x_dev
> > *dev,
> >               ret = mt7925_mcu_sta_ba(&dev->mt76, &mconf->mt76,
> > wcid, params,
> >                                       enable, false);
> >               if (ret < 0)
> > -                     break;
> > +                     return ret;
> >       }
> >
> > -     return ret;
> > +     return 0;
> >  }
> >
> >  static int mt7925_load_clc(struct mt792x_dev *dev, const char
> > *fw_name)
> > --
> > 2.45.2
> >

Hi Dan,

We plan to revert this patch, and the patch is already ongoing as well.

https://patchwork.kernel.org/project/linux-wireless/patch/20250114020712.704254-1-sean.wang@xxxxxxxxxx/

Best Regards,
Yen.