]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit
UBUNTU: SAUCE: PCI/DPC: Disable DPC interrupt during suspend
authorKai-Heng Feng <kai.heng.feng@canonical.com>
Fri, 29 Jan 2021 08:02:45 +0000 (16:02 +0800)
committerAndrea Righi <andrea.righi@canonical.com>
Mon, 15 Feb 2021 07:26:29 +0000 (08:26 +0100)
commit73deedaf0b8bc5b749166e80c4a7ca58eba0a522
treeceb56b0d3a4b70f1bbc994449957c302081ae1d1
parent695d13ecf45075fd1bebc0810f3971007b430fb6
UBUNTU: SAUCE: PCI/DPC: Disable DPC interrupt during suspend

BugLink: https://bugs.launchpad.net/bugs/1913691
Commit 50310600ebda ("iommu/vt-d: Enable PCI ACS for platform opt in
hint") enables ACS, and some platforms lose its NVMe after resume from
firmware:
[   50.947816] pcieport 0000:00:1b.0: DPC: containment event, status:0x1f01 source:0x0000
[   50.947817] pcieport 0000:00:1b.0: DPC: unmasked uncorrectable error detected
[   50.947829] pcieport 0000:00:1b.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Receiver ID)
[   50.947830] pcieport 0000:00:1b.0:   device [8086:06ac] error status/mask=00200000/00010000
[   50.947831] pcieport 0000:00:1b.0:    [21] ACSViol                (First)
[   50.947841] pcieport 0000:00:1b.0: AER: broadcast error_detected message
[   50.947843] nvme nvme0: frozen state error detected, reset controller

Like what previous patch does to AER, introduce new helpers to disable
DPC interrupt and enable it on system suspend and resume, respectively.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=209149
Fixes: 50310600ebda ("iommu/vt-d: Enable PCI ACS for platform opt in hint")
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
drivers/pci/pcie/dpc.c