linux-stable/drivers/pci
Francisco Munoz 70057eff87 PCI: vmd: Fix secondary bus reset for Intel bridges
[ Upstream commit 0a584655ef ]

The reset was never applied in the current implementation because Intel
Bridges owned by VMD are parentless. Internally, pci_reset_bus() applies
a reset to the parent of the PCI device supplied as argument, but in this
case it failed because there wasn't a parent.

In more detail, this change allows the VMD driver to enumerate NVMe devices
in pass-through configurations when guest reboots are performed. There was
an attempted to fix this, but later we discovered that the code inside
pci_reset_bus() wasn’t triggering secondary bus resets. Therefore, we
updated the parameters passed to it, and now NVMe SSDs attached to VMD
bridges are properly enumerated in VT-d pass-through scenarios.

Link: https://lore.kernel.org/r/20221206001637.4744-1-francisco.munoz.ruiz@linux.intel.com
Fixes: 6aab562229 ("PCI: vmd: Clean up domain before enumeration")
Signed-off-by: Francisco Munoz <francisco.munoz.ruiz@linux.intel.com>
Signed-off-by: Lorenzo Pieralisi <lpieralisi@kernel.org>
Reviewed-by: Nirmal Patel <nirmal.patel@linux.intel.com>
Reviewed-by: Jonathan Derrick <jonathan.derrick@linux.dev>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-31 13:26:22 +01:00
..
controller PCI: vmd: Fix secondary bus reset for Intel bridges 2022-12-31 13:26:22 +01:00
endpoint PCI: endpoint: pci-epf-vntb: Fix call pci_epc_mem_free_addr() in error path 2022-12-31 13:26:20 +01:00
hotplug
msi
pcie Merge branch 'pci/err' 2022-08-04 11:41:52 -05:00
switch PCI: switchtec: Prefer ida_alloc()/free() over ida_simple_get()/remove() 2022-06-09 12:28:21 -05:00
Kconfig cxl for 6.0 2022-08-10 11:07:26 -07:00
Makefile PCI/DOE: Add DOE mailbox support functions 2022-07-19 15:38:04 -07:00
access.c
ats.c
bus.c
doe.c PCI/DOE: Add DOE mailbox support functions 2022-07-19 15:38:04 -07:00
ecam.c
host-bridge.c
iov.c
irq.c PCI: Check for alloc failure in pci_request_irq() 2022-12-31 13:26:19 +01:00
mmap.c PCI: Remove pci_mmap_page_range() wrapper 2022-07-29 12:08:44 -05:00
of.c IOMMU Updates for Linux v5.19 2022-05-31 09:56:54 -07:00
p2pdma.c PCI/P2PDMA: Remove pci_p2pdma_[un]map_sg() 2022-07-26 07:28:08 -04:00
pci-acpi.c PCI/ACPI: Update link to PCI firmware specification 2022-07-22 14:38:38 -05:00
pci-bridge-emul.c
pci-bridge-emul.h
pci-driver.c IOMMU Updates for Linux v5.19 2022-05-31 09:56:54 -07:00
pci-label.c
pci-mid.c
pci-pf-stub.c
pci-stub.c
pci-sysfs.c
pci.c Merge branch 'pci/header-cleanup-immutable' 2022-08-04 11:46:53 -05:00
pci.h PCI/ASPM: Remove pcie_aspm_pm_state_change() 2022-07-12 10:08:26 -05:00
probe.c cxl for 6.0 2022-08-10 11:07:26 -07:00
proc.c PCI: Remove pci_mmap_page_range() wrapper 2022-07-29 12:08:44 -05:00
quirks.c Merge branch 'pci/header-cleanup-immutable' 2022-08-04 11:46:53 -05:00
remove.c
rom.c
search.c
setup-bus.c
setup-irq.c
setup-res.c PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge 2022-10-21 12:37:43 +02:00
slot.c
syscall.c
vc.c
vgaarb.c
vpd.c
xen-pcifront.c