From: Alessio Ferri <alessio.ferri@mythread.it>
To: Andreas Wendleder <gonsolo@gmail.com>
Cc: linux-wireless@vger.kernel.org,
Johannes Berg <johannes@sipsolutions.net>,
b43-dev@lists.infradead.org, Michael Buesch <m@bues.ch>,
kvalo@kernel.org, julian.calaby@gmail.com, jpeisach@ubuntu.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH wireless-next 1/2] wifi: b43: reprogram the MAC filter after an interface restart
Date: Tue, 27 Oct 2026 20:27:02 +0100 [thread overview]
Message-ID: <20261027202702.1c6902d8@fedora> (raw)
In-Reply-To: <20261014143225.82149-2-gonsolo@gmail.com>
Il giorno Wed, 14 Oct 2026 16:32:24 +0200
Andreas Wendleder <gonsolo@gmail.com> 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@gmail.com>
> ---
> 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 my DSL 3580L with a 4352 5Ghz, the chip transmit ok.
Tested-by: Alessio Ferri <alessio.ferri@mythread.it>
WARNING: multiple messages have this Message-ID (diff)
From: Alessio Ferri <alessio.ferri@mythread.it>
To: Andreas Wendleder <gonsolo@gmail.com>
Cc: julian.calaby@gmail.com, kvalo@kernel.org,
linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org,
b43-dev@lists.infradead.org, Michael Buesch <m@bues.ch>,
Johannes Berg <johannes@sipsolutions.net>
Subject: Re: [PATCH wireless-next 1/2] wifi: b43: reprogram the MAC filter after an interface restart
Date: Tue, 27 Oct 2026 20:27:02 +0100 [thread overview]
Message-ID: <20261027202702.1c6902d8@fedora> (raw)
In-Reply-To: <20261014143225.82149-2-gonsolo@gmail.com>
Il giorno Wed, 14 Oct 2026 16:32:24 +0200
Andreas Wendleder <gonsolo@gmail.com> 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@gmail.com>
> ---
> 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 my DSL 3580L with a 4352 5Ghz, the chip transmit ok.
Tested-by: Alessio Ferri <alessio.ferri@mythread.it>
_______________________________________________
b43-dev mailing list
b43-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/b43-dev
next prev parent reply other threads:[~2026-10-27 19:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-14 14:32 [PATCH wireless-next 0/2] wifi: b43: MAC filter and 64-bit DMA fixes for the BCM4360 Andreas Wendleder
2026-10-14 14:32 ` Andreas Wendleder
2026-10-14 14:32 ` [PATCH wireless-next 1/2] wifi: b43: reprogram the MAC filter after an interface restart Andreas Wendleder
2026-10-14 14:32 ` Andreas Wendleder
2026-10-27 19:21 ` Alessio Ferri
2026-10-27 19:21 ` Alessio Ferri
2026-10-27 19:25 ` Alessio Ferri
2026-10-27 19:25 ` Alessio Ferri
2026-10-27 19:27 ` Alessio Ferri [this message]
2026-10-27 19:27 ` Alessio Ferri
2026-10-14 14:32 ` [PATCH wireless-next 2/2] wifi: b43: handle 64-bit DMA engines whose index registers hold bus addresses Andreas Wendleder
2026-10-14 14:32 ` Andreas Wendleder
2026-10-27 19:24 ` Alessio Ferri
2026-10-27 19:24 ` Alessio Ferri
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261027202702.1c6902d8@fedora \
--to=alessio.ferri@mythread.it \
--cc=b43-dev@lists.infradead.org \
--cc=gonsolo@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=jpeisach@ubuntu.com \
--cc=julian.calaby@gmail.com \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=m@bues.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.