* [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP
@ 2026-10-10 17:23 Aditya Garg
2026-10-10 17:28 ` sashiko-bot
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Aditya Garg @ 2026-10-10 17:23 UTC (permalink / raw)
To: Bjorn Helgaas, linux-pci
Cc: Mahesh J Salgaonkar, Oliver OHalloran, linuxppc-dev, Alex Deucher,
Christian Koenig, Vitaly Prosyak, amd-gfx, Lukas Wunner,
Jason Perlow
Jason reported that since commit eddba19b8b5f ("PCI/AER: Support Advisory
Non-Fatal Errors"), the Macs with Apple T2 Security Chip were powering
off a few seconds after every boot. He also found the PCI Device
106b:1802, which corresponds to the Apple T2 Secure Enclave Processor was
misbehaving and the most likely reason is that the device is ANFE
incompatible due to Apple's custom hardware.
Since its highly unlikely that Apple will release a firmware update to
support ANFE, introduce a quirk as suggested by Lukas to blacklist the T2
SEP from ANFE.
Fixes: eddba19b8b5f ("PCI/AER: Support Advisory Non-Fatal Errors")
Reported-by: Jason Perlow <jperlow@gmail.com>
Tested-by: Jason Perlow <jperlow@gmail.com>
Closes: https://lore.kernel.org/linux-pci/CABZrw2HcaOh3DHTJtxU5dXrb3Vg19scr6+qR-xe_+R7rME35_Q@mail.gmail.com/
Signed-off-by: Aditya Garg <aditya.garg@linux.dev>
---
drivers/pci/pcie/aer.c | 3 ++-
drivers/pci/quirks.c | 12 ++++++++++++
include/linux/pci.h | 1 +
include/linux/pci_ids.h | 1 +
4 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index 922a726a5..cab195f7c 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -428,7 +428,8 @@ void pci_aer_init(struct pci_dev *dev)
* Advisory Non-Fatal Errors are masked by default (PCIe r7.0, sec
* 7.8.4.6).
*/
- if (pcie_aer_is_native(dev) && dev->devcap & PCI_EXP_DEVCAP_RBER)
+ if (pcie_aer_is_native(dev) && dev->devcap & PCI_EXP_DEVCAP_RBER &&
+ !dev->no_aer_anfe)
pci_clear_and_set_config_dword(dev,
dev->aer_cap + PCI_ERR_COR_MASK,
PCI_ERR_COR_ADV_NFAT, 0);
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index de9bbccda..acca89532 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -6422,4 +6422,16 @@ static void pci_mask_replay_timer_timeout(struct pci_dev *pdev)
}
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9750, pci_mask_replay_timer_timeout);
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9755, pci_mask_replay_timer_timeout);
+
+/*
+ * Unmasking Advisory Non-Fatal Errors on Apple T2 Secure Enclave
+ * processor leads to the Mac shutting down spontaneously. Avoid
+ * doing that.
+ */
+static void quirk_no_aer_anfe(struct pci_dev *dev)
+{
+ dev->no_aer_anfe = 1;
+}
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_T2_SEP, quirk_no_aer_anfe);
#endif
diff --git a/include/linux/pci.h b/include/linux/pci.h
index d31a8d107..83ffa5058 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -514,6 +514,7 @@ struct pci_dev {
unsigned int rom_bar_overlap:1; /* ROM BAR disable broken */
unsigned int rom_attr_enabled:1; /* Display of ROM attribute enabled? */
unsigned int non_mappable_bars:1; /* BARs can't be mapped by CPU or peers */
+ unsigned int no_aer_anfe:1; /* Don't unmask Advisory Non-Fatal Errors */
pci_dev_flags_t dev_flags;
atomic_t enable_cnt; /* pci_enable_device has been called */
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 63774ae2b..103024f74 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1007,6 +1007,7 @@
#define PCI_DEVICE_ID_APPLE_IPID2_FW 0x006a
#define PCI_DEVICE_ID_APPLE_IPID2_GMAC 0x006b
#define PCI_DEVICE_ID_APPLE_TIGON3 0x1645
+#define PCI_DEVICE_ID_APPLE_T2_SEP 0x1802
#define PCI_VENDOR_ID_YAMAHA 0x1073
#define PCI_DEVICE_ID_YAMAHA_724 0x0004
--
2.55.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP
2026-10-10 17:23 [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP Aditya Garg
@ 2026-10-10 17:28 ` sashiko-bot
2026-10-12 19:06 ` Lukas Wunner
2026-10-12 19:29 ` Bjorn Helgaas
2 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-10-10 17:28 UTC (permalink / raw)
To: Aditya Garg; +Cc: linux-pci
> Jason reported that since commit eddba19b8b5f ("PCI/AER: Support Advisory
> Non-Fatal Errors"), the Macs with Apple T2 Security Chip were powering
> off a few seconds after every boot. He also found the PCI Device
> 106b:1802, which corresponds to the Apple T2 Secure Enclave Processor was
> misbehaving and the most likely reason is that the device is ANFE
> incompatible due to Apple's custom hardware.
>
> Since its highly unlikely that Apple will release a firmware update to
> support ANFE, introduce a quirk as suggested by Lukas to blacklist the T2
> SEP from ANFE.
>
> Fixes: eddba19b8b5f ("PCI/AER: Support Advisory Non-Fatal Errors")
> Reported-by: Jason Perlow <jperlow@gmail.com>
> Tested-by: Jason Perlow <jperlow@gmail.com>
> Closes: https://lore.kernel.org/linux-pci/CABZrw2HcaOh3DHTJtxU5dXrb3Vg19scr6+qR-xe_+R7rME35_Q@mail.gmail.com/
> Signed-off-by: Aditya Garg <aditya.garg@linux.dev>
Sashiko has reviewed this patch and found no issues. It looks great!
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261010172301.12764-1-aditya.garg@linux.dev?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP
2026-10-10 17:23 [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP Aditya Garg
2026-10-10 17:28 ` sashiko-bot
@ 2026-10-12 19:06 ` Lukas Wunner
2026-10-12 19:29 ` Bjorn Helgaas
2 siblings, 0 replies; 5+ messages in thread
From: Lukas Wunner @ 2026-10-12 19:06 UTC (permalink / raw)
To: Aditya Garg
Cc: Bjorn Helgaas, linux-pci, Mahesh J Salgaonkar, Oliver OHalloran,
linuxppc-dev, Alex Deucher, Christian Koenig, Vitaly Prosyak,
amd-gfx, Jason Perlow
On Sat, Oct 10, 2026 at 10:53:01PM +0530, Aditya Garg wrote:
> Jason reported that since commit eddba19b8b5f ("PCI/AER: Support Advisory
> Non-Fatal Errors"), the Macs with Apple T2 Security Chip were powering
> off a few seconds after every boot. He also found the PCI Device
> 106b:1802, which corresponds to the Apple T2 Secure Enclave Processor was
> misbehaving and the most likely reason is that the device is ANFE
> incompatible due to Apple's custom hardware.
Nit: Not sure what "misbehaving" means beyond the sudden power-off?
> +++ b/drivers/pci/pcie/aer.c
> @@ -428,7 +428,8 @@ void pci_aer_init(struct pci_dev *dev)
> * Advisory Non-Fatal Errors are masked by default (PCIe r7.0, sec
> * 7.8.4.6).
> */
> - if (pcie_aer_is_native(dev) && dev->devcap & PCI_EXP_DEVCAP_RBER)
> + if (pcie_aer_is_native(dev) && dev->devcap & PCI_EXP_DEVCAP_RBER &&
> + !dev->no_aer_anfe)
> pci_clear_and_set_config_dword(dev,
> dev->aer_cap + PCI_ERR_COR_MASK,
> PCI_ERR_COR_ADV_NFAT, 0);
Nit: The "!dev->no_aer_anfe" is not aligned with the opening brace.
It's probably not necessary to respin for the nits alone because
Bjorn may resolve them when applying the patch.
Reviewed-by: Lukas Wunner <lukas@wunner.de>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP
2026-10-10 17:23 [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP Aditya Garg
2026-10-10 17:28 ` sashiko-bot
2026-10-12 19:06 ` Lukas Wunner
@ 2026-10-12 19:29 ` Bjorn Helgaas
2026-10-12 20:14 ` Bjorn Helgaas
2 siblings, 1 reply; 5+ messages in thread
From: Bjorn Helgaas @ 2026-10-12 19:29 UTC (permalink / raw)
To: Aditya Garg
Cc: linux-pci, Mahesh J Salgaonkar, Oliver OHalloran, linuxppc-dev,
Alex Deucher, Christian Koenig, Vitaly Prosyak, amd-gfx,
Lukas Wunner, Jason Perlow
On Sat, Oct 10, 2026 at 10:53:01PM +0530, Aditya Garg wrote:
> Jason reported that since commit eddba19b8b5f ("PCI/AER: Support Advisory
> Non-Fatal Errors"), the Macs with Apple T2 Security Chip were powering
> off a few seconds after every boot. He also found the PCI Device
> 106b:1802, which corresponds to the Apple T2 Secure Enclave Processor was
> misbehaving and the most likely reason is that the device is ANFE
> incompatible due to Apple's custom hardware.
>
> Since its highly unlikely that Apple will release a firmware update to
> support ANFE, introduce a quirk as suggested by Lukas to blacklist the T2
> SEP from ANFE.
>
> Fixes: eddba19b8b5f ("PCI/AER: Support Advisory Non-Fatal Errors")
> Reported-by: Jason Perlow <jperlow@gmail.com>
> Tested-by: Jason Perlow <jperlow@gmail.com>
> Closes: https://lore.kernel.org/linux-pci/CABZrw2HcaOh3DHTJtxU5dXrb3Vg19scr6+qR-xe_+R7rME35_Q@mail.gmail.com/
> Signed-off-by: Aditya Garg <aditya.garg@linux.dev>
Applied to pci/for-linus for v7.3, thank you!
I aligned the "!dev->no_aer_anfe" test as Lukas suggested and took a
stab at the "misbehaving" comment:
Jason reported that since commit eddba19b8b5f ("PCI/AER: Support Advisory
Non-Fatal Errors"), the Macs with Apple T2 Security Chip were powering off
a few seconds after every boot. He also found that the power-off only
happens when Advisory Non-Fatal Errors are unmasked on the PCI Device
106b:1802, the Apple T2 Secure Enclave Processor.
I'll be happy to revise this if we can make it clearer or more
specific.
> ---
> drivers/pci/pcie/aer.c | 3 ++-
> drivers/pci/quirks.c | 12 ++++++++++++
> include/linux/pci.h | 1 +
> include/linux/pci_ids.h | 1 +
> 4 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index 922a726a5..cab195f7c 100644
> --- a/drivers/pci/pcie/aer.c
> +++ b/drivers/pci/pcie/aer.c
> @@ -428,7 +428,8 @@ void pci_aer_init(struct pci_dev *dev)
> * Advisory Non-Fatal Errors are masked by default (PCIe r7.0, sec
> * 7.8.4.6).
> */
> - if (pcie_aer_is_native(dev) && dev->devcap & PCI_EXP_DEVCAP_RBER)
> + if (pcie_aer_is_native(dev) && dev->devcap & PCI_EXP_DEVCAP_RBER &&
> + !dev->no_aer_anfe)
> pci_clear_and_set_config_dword(dev,
> dev->aer_cap + PCI_ERR_COR_MASK,
> PCI_ERR_COR_ADV_NFAT, 0);
> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index de9bbccda..acca89532 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -6422,4 +6422,16 @@ static void pci_mask_replay_timer_timeout(struct pci_dev *pdev)
> }
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9750, pci_mask_replay_timer_timeout);
> DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9755, pci_mask_replay_timer_timeout);
> +
> +/*
> + * Unmasking Advisory Non-Fatal Errors on Apple T2 Secure Enclave
> + * processor leads to the Mac shutting down spontaneously. Avoid
> + * doing that.
> + */
> +static void quirk_no_aer_anfe(struct pci_dev *dev)
> +{
> + dev->no_aer_anfe = 1;
> +}
> +
> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_T2_SEP, quirk_no_aer_anfe);
> #endif
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index d31a8d107..83ffa5058 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -514,6 +514,7 @@ struct pci_dev {
> unsigned int rom_bar_overlap:1; /* ROM BAR disable broken */
> unsigned int rom_attr_enabled:1; /* Display of ROM attribute enabled? */
> unsigned int non_mappable_bars:1; /* BARs can't be mapped by CPU or peers */
> + unsigned int no_aer_anfe:1; /* Don't unmask Advisory Non-Fatal Errors */
> pci_dev_flags_t dev_flags;
> atomic_t enable_cnt; /* pci_enable_device has been called */
>
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 63774ae2b..103024f74 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -1007,6 +1007,7 @@
> #define PCI_DEVICE_ID_APPLE_IPID2_FW 0x006a
> #define PCI_DEVICE_ID_APPLE_IPID2_GMAC 0x006b
> #define PCI_DEVICE_ID_APPLE_TIGON3 0x1645
> +#define PCI_DEVICE_ID_APPLE_T2_SEP 0x1802
>
> #define PCI_VENDOR_ID_YAMAHA 0x1073
> #define PCI_DEVICE_ID_YAMAHA_724 0x0004
> --
> 2.55.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP
2026-10-12 19:29 ` Bjorn Helgaas
@ 2026-10-12 20:14 ` Bjorn Helgaas
0 siblings, 0 replies; 5+ messages in thread
From: Bjorn Helgaas @ 2026-10-12 20:14 UTC (permalink / raw)
To: Aditya Garg
Cc: linux-pci, Mahesh J Salgaonkar, Oliver OHalloran, linuxppc-dev,
Alex Deucher, Christian Koenig, Vitaly Prosyak, amd-gfx,
Lukas Wunner, Jason Perlow
On Mon, Oct 12, 2026 at 02:29:33PM -0500, Bjorn Helgaas wrote:
> On Sat, Oct 10, 2026 at 10:53:01PM +0530, Aditya Garg wrote:
> > Jason reported that since commit eddba19b8b5f ("PCI/AER: Support Advisory
> > Non-Fatal Errors"), the Macs with Apple T2 Security Chip were powering
> > off a few seconds after every boot. He also found the PCI Device
> > 106b:1802, which corresponds to the Apple T2 Secure Enclave Processor was
> > misbehaving and the most likely reason is that the device is ANFE
> > incompatible due to Apple's custom hardware.
> >
> > Since its highly unlikely that Apple will release a firmware update to
> > support ANFE, introduce a quirk as suggested by Lukas to blacklist the T2
> > SEP from ANFE.
> >
> > Fixes: eddba19b8b5f ("PCI/AER: Support Advisory Non-Fatal Errors")
> > Reported-by: Jason Perlow <jperlow@gmail.com>
> > Tested-by: Jason Perlow <jperlow@gmail.com>
> > Closes: https://lore.kernel.org/linux-pci/CABZrw2HcaOh3DHTJtxU5dXrb3Vg19scr6+qR-xe_+R7rME35_Q@mail.gmail.com/
> > Signed-off-by: Aditya Garg <aditya.garg@linux.dev>
>
> Applied to pci/for-linus for v7.3, thank you!
Replaced by Jason's very similar but slightly earlier patch at
https://patch.msgid.link/CABZrw2H+3yt2Y7xiq6OyAWaJM7P9ox-2nJxoQuJMwoJHLgi+YQ@mail.gmail.com/
> I aligned the "!dev->no_aer_anfe" test as Lukas suggested and took a
> stab at the "misbehaving" comment:
>
> Jason reported that since commit eddba19b8b5f ("PCI/AER: Support Advisory
> Non-Fatal Errors"), the Macs with Apple T2 Security Chip were powering off
> a few seconds after every boot. He also found that the power-off only
> happens when Advisory Non-Fatal Errors are unmasked on the PCI Device
> 106b:1802, the Apple T2 Secure Enclave Processor.
>
> I'll be happy to revise this if we can make it clearer or more
> specific.
>
> > ---
> > drivers/pci/pcie/aer.c | 3 ++-
> > drivers/pci/quirks.c | 12 ++++++++++++
> > include/linux/pci.h | 1 +
> > include/linux/pci_ids.h | 1 +
> > 4 files changed, 16 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> > index 922a726a5..cab195f7c 100644
> > --- a/drivers/pci/pcie/aer.c
> > +++ b/drivers/pci/pcie/aer.c
> > @@ -428,7 +428,8 @@ void pci_aer_init(struct pci_dev *dev)
> > * Advisory Non-Fatal Errors are masked by default (PCIe r7.0, sec
> > * 7.8.4.6).
> > */
> > - if (pcie_aer_is_native(dev) && dev->devcap & PCI_EXP_DEVCAP_RBER)
> > + if (pcie_aer_is_native(dev) && dev->devcap & PCI_EXP_DEVCAP_RBER &&
> > + !dev->no_aer_anfe)
> > pci_clear_and_set_config_dword(dev,
> > dev->aer_cap + PCI_ERR_COR_MASK,
> > PCI_ERR_COR_ADV_NFAT, 0);
> > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> > index de9bbccda..acca89532 100644
> > --- a/drivers/pci/quirks.c
> > +++ b/drivers/pci/quirks.c
> > @@ -6422,4 +6422,16 @@ static void pci_mask_replay_timer_timeout(struct pci_dev *pdev)
> > }
> > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9750, pci_mask_replay_timer_timeout);
> > DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_GLI, 0x9755, pci_mask_replay_timer_timeout);
> > +
> > +/*
> > + * Unmasking Advisory Non-Fatal Errors on Apple T2 Secure Enclave
> > + * processor leads to the Mac shutting down spontaneously. Avoid
> > + * doing that.
> > + */
> > +static void quirk_no_aer_anfe(struct pci_dev *dev)
> > +{
> > + dev->no_aer_anfe = 1;
> > +}
> > +
> > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_T2_SEP, quirk_no_aer_anfe);
> > #endif
> > diff --git a/include/linux/pci.h b/include/linux/pci.h
> > index d31a8d107..83ffa5058 100644
> > --- a/include/linux/pci.h
> > +++ b/include/linux/pci.h
> > @@ -514,6 +514,7 @@ struct pci_dev {
> > unsigned int rom_bar_overlap:1; /* ROM BAR disable broken */
> > unsigned int rom_attr_enabled:1; /* Display of ROM attribute enabled? */
> > unsigned int non_mappable_bars:1; /* BARs can't be mapped by CPU or peers */
> > + unsigned int no_aer_anfe:1; /* Don't unmask Advisory Non-Fatal Errors */
> > pci_dev_flags_t dev_flags;
> > atomic_t enable_cnt; /* pci_enable_device has been called */
> >
> > diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> > index 63774ae2b..103024f74 100644
> > --- a/include/linux/pci_ids.h
> > +++ b/include/linux/pci_ids.h
> > @@ -1007,6 +1007,7 @@
> > #define PCI_DEVICE_ID_APPLE_IPID2_FW 0x006a
> > #define PCI_DEVICE_ID_APPLE_IPID2_GMAC 0x006b
> > #define PCI_DEVICE_ID_APPLE_TIGON3 0x1645
> > +#define PCI_DEVICE_ID_APPLE_T2_SEP 0x1802
> >
> > #define PCI_VENDOR_ID_YAMAHA 0x1073
> > #define PCI_DEVICE_ID_YAMAHA_724 0x0004
> > --
> > 2.55.0
> >
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-10-12 20:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-10 17:23 [PATCH for-linus] PCI/AER: Skip unmasking Advisory Non-Fatal Errors on T2 SEP Aditya Garg
2026-10-10 17:28 ` sashiko-bot
2026-10-12 19:06 ` Lukas Wunner
2026-10-12 19:29 ` Bjorn Helgaas
2026-10-12 20:14 ` Bjorn Helgaas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox