Re: [PATCH wireless-next 1/2] wifi: b43: reprogram the MAC filter after an interface restart

From: Alessio Ferri

Date: Tue Oct 27 2026 - 15:26:12 EST


Il giorno Tue, 27 Oct 2026 20:21:51 +0100
Alessio Ferri <alessio.ferri@xxxxxxxxxxx> ha scritto:

> Il giorno Wed, 14 Oct 2026 16:32:24 +0200
> Andreas Wendleder <gonsolo@xxxxxxxxx> ha scritto:
>
> > b43_op_start() clears wl->filter_flags, but mac80211 computes
> > @changed for b43_op_configure_filter() against the flags it cached
> > from the previous run. After a down/up it can report no change, so
> > b43_adjust_opmode() is not called and MACCTL keeps the cleared
> > filter.
> >
> > Compare the requested flags with what the hardware was programmed
> > with and add the difference to @changed.
> >
> > Signed-off-by: Andreas Wendleder <gonsolo@xxxxxxxxx>
> > ---
> > drivers/net/wireless/broadcom/b43/main.c | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/net/wireless/broadcom/b43/main.c
> > b/drivers/net/wireless/broadcom/b43/main.c index 8f4aff3..57a5935
> > 100644 --- a/drivers/net/wireless/broadcom/b43/main.c
> > +++ b/drivers/net/wireless/broadcom/b43/main.c
> > @@ -4318,6 +4318,14 @@ static void b43_op_configure_filter(struct
> > ieee80211_hw *hw, FIF_OTHER_BSS |
> > FIF_BCN_PRBRESP_PROMISC;
> >
> > + /*
> > + * b43_op_start() zeroes wl->filter_flags, but mac80211
> > computes
> > + * @changed against its own cached flags, so after an
> > interface
> > + * restart it reports no change and MACCTL kept the zeroed
> > filter.
> > + * Compare against what the hardware was actually
> > programmed with.
> > + */
> > + if (wl->filter_flags != *fflags)
> > + changed |= wl->filter_flags ^ *fflags;
> > wl->filter_flags = *fflags;
> >
> > if (changed && b43_status(dev) >= B43_STAT_INITIALIZED)
>
> Tested on DSL 3580L, with 4352 chip on 5Ghz, the chip transmit and no
> dma error arise. Without the patch the dma engine report an error on
> the descriptor. Earlier in June i wrongly asserted that the DMA on AC
> chips was needing 64 Kb segments, it was a wrong conclusion: going
> 64kb did stop the error, but for the wrong reason.
>
> Tested-by: Alessio Ferri <alessio.ferri@xxxxxxxxxxx>
>
> _______________________________________________
> b43-dev mailing list
> b43-dev@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/b43-dev

Ops, i meant to send it for PATCH 2/2, sorry to all

Sorry again
Alessio