Linux wireless drivers development
 help / color / mirror / Atom feed
From: Baolu Lu <baolu.lu@linux.intel.com>
To: "Perlow, Jason" <jperlow@gmail.com>,
	Aditya Garg <aditya.garg@linux.dev>,
	dwmw2@infradead.org
Cc: iommu@lists.linux.dev, Bjorn Helgaas <bhelgaas@google.com>,
	linux-pci@vger.kernel.org, arend.vanspriel@broadcom.com,
	linux-wireless@vger.kernel.org
Subject: Re: intel-iommu: DMAR PTE Read fault crash-loops a PCIe wifi device, v7.3-rc7 -> v7.3 final regression, reproduces on one unit out of five tested
Date: Wed, 21 Oct 2026 14:13:40 +0800	[thread overview]
Message-ID: <2c840dcf-4292-4579-a62d-f9766b7cb780@linux.intel.com> (raw)
In-Reply-To: <CABZrw2GfC8SEPiGOUD42um57nKZAghjHz8N1DhMsw8sOC7OAxA@mail.gmail.com>

On 10/20/26 22:40, Perlow, Jason wrote:
> Hardware: Intel CoffeeLake-H platforms, various. The affected device is 
> a Broadcom BCM4364 802.11ac PCIe wifi adapter (14e4:4464) at 
> 0000:05:00.0 on an Apple MacBookPro16,1 (T2 Mac). Aditya, including you 
> directly since this is T2 hardware; copying iommu/pci/wireless because 
> the fault signature and the fact that it reproduces on only one of five 
> tested machines looks like it needs eyes on the core IOMMU/PCI path, not 
> the driver.
> 
> SYMPTOM
> 
> Between a locally-built v7.3-rc7 kernel and a v7.3 final kernel 
> (same .config template, same patch series beyond one T2-specific AER 
> quirk that is upstream in final and therefore held out of our patch 
> set), the BCM4364 wifi firmware on ONE affected unit crash-loops 
> continuously:
> 
> brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4364b3-pcie for 
> chip BCM4364/4
> brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4364/4 wl0: ...
> ieee80211 phy0: brcmf_fw_crashed: Firmware has halted or crashed
> 
> repeating every ~6s, indefinitely. dmesg shows the actual mechanism -- a 
> real IOMMU DMAR page fault on the wifi device, timed to the same cadence 
> as the firmware crash:
> 
> DMAR: DRHD: handling fault status reg 3
> DMAR: [DMA Read NO_PASID] Request device [0000:05:00.0] fault addr 
> 0xffeff000 [fault reason 0x06] PTE Read access is not set
> 
> Four such faults logged at uptime 13.4s/19.4s/25.3s/31.2s, each 
> immediately followed by a brcmf_fw_crashed event. intel_iommu=off 
> removes the fault and the crash entirely (8+ minutes stable, single 
> clean firmware load, stable AP association). The prior v7.3-rc7 kernel 
> on the SAME unit has zero DMAR faults and zero firmware crashes with 
> IOMMU on by default, so this is a regression introduced somewhere in the 
> rc7->final window on this unit, not a long-standing issue.

Can you confirm that the IOMMU is actually enabled and translating on
the rc7 boot? Please check that boot's kernel log for:

DMAR: IOMMU enabled
iommu: Default domain type: Translated

> 
> REPRODUCES ON 1 OF 5 MACHINES TESTED
> 
> We ran the identical kernel build (and, where applicable, the identical 
> firmware blob) across five machines and only one faults:
> 
> * Affected unit (MacBookPro16,1, T2, BCM4364 wifi): faults as above.
> * Second MacBookPro16,1 (same generation, different configuration within 
> the 16,1 line -- we have not enumerated every hardware delta): same 
> kernel binary, same firmware blob, IOMMU also active by default (iommu: 
> Default domain type: Translated, identical to the affected unit) -- zero 
> DMAR faults, brcmfmac stable.
> * Three non-Mac x86_64 machines spanning three more wifi vendors (Intel 
> iwlwifi AX201, Intel iwlwifi Centrino 2230, Realtek rtw89 8852BE) -- 
> IOMMU active and translating on all three, zero DMAR faults, all three 
> wifi chips loaded firmware and ran cleanly.
> 
> So across four different wifi silicon vendors and five physical 
> machines, IOMMU is actively translating DMA on every one of them and 
> only the single affected unit faults. This looks like a host-specific or 
> hardware-configuration-specific trigger rather than a blanket rc7->final 
> regression that would hit every machine with this kernel. We do not yet 
> know what distinguishes the affected unit (ACPI RMRR table contents, 
> exact PCIe link training time, and IOMMU group/domain-attach ordering 
> are the candidates we have not yet isolated).
> 
> WHAT WE RULED OUT BEFORE WRITING IN
> 
> * AER/ANFE quirk on the T2 Secure Enclave device: its PCI ID match is 
> exact (Apple SEP, 106b:1802) and does not touch the wifi device 
> (14e4:4464); real PCI topology on the affected unit also shows SEP and 
> wifi on separate root ports (00:1b.0 -> [04] vs 00:1c.0 -> [05] off the 
> PCH), so there's no shared-root-port mechanism either.
> * brcmfmac driver source: git diff v7.3-rc7..v7.3 -- drivers/net/ 
> wireless/broadcom/brcm80211/ is empty.
> * Our own config template: byte-identical between the rc7 and final builds.
> * The upstream Kconfig stanza for INTEL_IOMMU_DEFAULT_ON (drivers/iommu/ 
> intel/Kconfig): byte-identical text between v7.3-rc7 and v7.3 (default 
> y, no depends on).
> 
> THE ONE ANOMALY WE CAN'T YET EXPLAIN
> 
> Despite the last two items above being unchanged, the actual 
> generated .config has CONFIG_INTEL_IOMMU_DEFAULT_ON unset after make 
> olddefconfig against the rc7 source tree, but =y after the same process 
> against the final source tree, even though our template explicitly 
> answers "# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set" in both cases. Our

If CONFIG_INTEL_IOMMU_DEFAULT_ON was not set in your rc7 build, and
intel_iommu=on was not on the command line, the Intel IOMMU was
disabled by default on rc7. In that case, rc7 could never report a
DMAR fault, and the "regression" is only that v7.3 final enabled the
IOMMU.

Could you boot the rc7 kernel on the affected unit with intel_iommu=on
and see whether the same fault shows up? If it does, there is no
rc7->final regression in the IOMMU code. It would be an existing DMA
issue with brcmfmac/BCM4364.

> working theory is that some other symbol started selecting/implying 
> INTEL_IOMMU_DEFAULT_ON between rc7 and final -- which would override an 
> explicitly-seeded "not set" answer during olddefconfig resolution -- but 
> we have not identified which one. Happy to bisect further, or provide 
> the full .config / additional dmesg, if that would help narrow it.
> 
> CURRENT STATUS
> 
> intel_iommu=off on the affected unit's kernel command line is our 
> accepted fix for this specific machine while the root cause is 
> unresolved; we are not disabling IOMMU fleet-wide, since four of the 
> five test machines show no problem with it on. Posting here in case this 
> fault signature is recognized, or in case others on different T2 or non- 
> T2 hardware see the same thing on v7.3 final.

Thanks,
baolu

  parent reply	other threads:[~2026-10-21  6:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CABZrw2GfC8SEPiGOUD42um57nKZAghjHz8N1DhMsw8sOC7OAxA@mail.gmail.com>
2026-10-20 14:46 ` intel-iommu: DMAR PTE Read fault crash-loops a PCIe wifi device, v7.3-rc7 -> v7.3 final regression, reproduces on one unit out of five tested Aditya Garg
2026-10-21  6:13 ` Baolu Lu [this message]
2026-10-21  7:33   ` Jason Perlow
2026-10-21  8:39     ` Arend van Spriel
2026-10-21 13:53       ` Jason Perlow
2026-10-21 16:39         ` Arend van Spriel
2026-10-21 17:04           ` Jason Perlow
2026-10-21 17:27             ` Aditya Garg
2026-10-21 17:28             ` Arend van Spriel

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=2c840dcf-4292-4579-a62d-f9766b7cb780@linux.intel.com \
    --to=baolu.lu@linux.intel.com \
    --cc=aditya.garg@linux.dev \
    --cc=arend.vanspriel@broadcom.com \
    --cc=bhelgaas@google.com \
    --cc=dwmw2@infradead.org \
    --cc=iommu@lists.linux.dev \
    --cc=jperlow@gmail.com \
    --cc=linux-pci@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