[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220105060643.822111-1-kai.heng.feng@canonical.com>
Date: Wed, 5 Jan 2022 14:06:41 +0800
From: Kai-Heng Feng <kai.heng.feng@...onical.com>
To: bhelgaas@...gle.com
Cc: mika.westerberg@...ux.intel.com, koba.ko@...onical.com,
Kai-Heng Feng <kai.heng.feng@...onical.com>,
Lukas Wunner <lukas@...ner.de>,
Stuart Hayes <stuart.w.hayes@...il.com>,
Jan Kiszka <jan.kiszka@...mens.com>, linux-pci@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH] PCI/portdrv: Skip enabling AER on external facing ports
The Thunderbolt root ports may constantly spew out uncorrected errors
from AER service:
[ 30.100211] pcieport 0000:00:1d.0: AER: Uncorrected (Non-Fatal) error received: 0000:00:1d.0
[ 30.100251] pcieport 0000:00:1d.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID)
[ 30.100256] pcieport 0000:00:1d.0: device [8086:7ab0] error status/mask=00100000/00004000
[ 30.100262] pcieport 0000:00:1d.0: [20] UnsupReq (First)
[ 30.100267] pcieport 0000:00:1d.0: AER: TLP Header: 34000000 08000052 00000000 00000000
[ 30.100372] thunderbolt 0000:0a:00.0: AER: can't recover (no error_detected callback)
[ 30.100401] xhci_hcd 0000:3e:00.0: AER: can't recover (no error_detected callback)
[ 30.100427] pcieport 0000:00:1d.0: AER: device recovery failed
The link may not be reliable on external facing ports, so don't enable
AER on those ports.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=215453
Signed-off-by: Kai-Heng Feng <kai.heng.feng@...onical.com>
---
drivers/pci/pcie/portdrv_core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c
index bda630889f955..d464d00ade8f2 100644
--- a/drivers/pci/pcie/portdrv_core.c
+++ b/drivers/pci/pcie/portdrv_core.c
@@ -219,7 +219,8 @@ static int get_port_device_capability(struct pci_dev *dev)
#ifdef CONFIG_PCIEAER
if (dev->aer_cap && pci_aer_available() &&
- (pcie_ports_native || host->native_aer)) {
+ (pcie_ports_native || host->native_aer) &&
+ !dev->external_facing) {
services |= PCIE_PORT_SERVICE_AER;
/*
--
2.33.1
Powered by blists - more mailing lists