Linux wireless drivers development
 help / color / mirror / Atom feed
From: Andre Eikmeyer <dev@deq.rocks>
To: arend.vanspriel@broadcom.com
Cc: linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev,
	brcm80211-dev-list.pdl@broadcom.com,
	linux-kernel@vger.kernel.org, Andre Eikmeyer <dev@deq.rocks>,
	Yossef Osman <Yossef.Osman@proton.me>,
	Aditya Garg <aditya.garg@linux.dev>
Subject: [PATCH] wifi: brcmfmac: keep ARP and ND offload off on the BCM4364
Date: Wed,  4 Nov 2026 16:16:20 +0100	[thread overview]
Message-ID: <20261104151620.70671-1-dev@deq.rocks> (raw)

brcmfmac enables the firmware's ARP and IPv6 ND offload (ndoe) whenever
the interface is up and not promiscuous. On the Apple firmware for the
BCM4364, ndoe makes IPv6 downloads collapse. IPv6 downloads topped out
at 55 Mbit/s on a MacBookPro15,1 with the BCM4364/3 and on the
MacBookPro16,1 with the later revision. The BCM4377 is not affected.

macOS enables ND offload for associated sleep only. A trace under
macOS 26.6.1 on a MacBookPro16,2 shows nd_hostip_clear, ndoe=1 and the
IPv6 addresses before sleep and ndoe cleared again on wake, see the
first report below. Keep them off on the BCM4364.

Closes: https://github.com/t2linux/kernel/issues/34
Closes: https://github.com/t2linux/T2-Debian-and-Ubuntu-Kernel/issues/227
Tested-by: Yossef Osman <Yossef.Osman@proton.me>
Tested-by: Aditya Garg <aditya.garg@linux.dev>
Signed-off-by: Andre Eikmeyer <dev@deq.rocks>
---
The KaiT2en community runs this patch with its kernels, no regression
was reported.

 .../net/wireless/broadcom/brcm80211/brcmfmac/core.c    | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
index 92ec269f43b..6eae7135aeb 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -13,6 +13,7 @@
 #include <net/addrconf.h>
 #include <net/ieee80211_radiotap.h>
 #include <net/ipv6.h>
+#include <brcm_hw_ids.h>
 #include <brcmu_utils.h>
 #include <brcmu_wifi.h>
 
@@ -103,6 +104,15 @@ void brcmf_configure_arp_nd_offload(struct brcmf_if *ifp, bool enable)
 		return;
 	}
 
+	/* With ND offload on while awake, the Apple firmware for the BCM4364
+	 * makes IPv6 downloads drop to low rates. macOS runs ARP and ND
+	 * offload only in sleep, keep both off on this chip.
+	 */
+	if (enable && ifp->drvr->bus_if->chip == BRCM_CC_4364_CHIP_ID) {
+		brcmf_dbg(TRACE, "Skip ARP/ND offload enable on BCM4364\n");
+		enable = false;
+	}
+
 	if (enable)
 		mode = BRCMF_ARP_OL_AGENT | BRCMF_ARP_OL_PEER_AUTO_REPLY;
 	else

base-commit: 991a73f4909f1348ffb4b38765cdb522a775e4c2

                 reply	other threads:[~2026-11-04 15:16 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20261104151620.70671-1-dev@deq.rocks \
    --to=dev@deq.rocks \
    --cc=Yossef.Osman@proton.me \
    --cc=aditya.garg@linux.dev \
    --cc=arend.vanspriel@broadcom.com \
    --cc=brcm80211-dev-list.pdl@broadcom.com \
    --cc=brcm80211@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox