linux_dsm_epyc7002/drivers/pci
Jan Kiszka 690f430410 PCI: Scan all functions when running over Jailhouse
Per PCIe r4.0, sec 7.5.1.1.9, multi-function devices are required to have a
function 0.  Therefore, Linux scans for devices at function 0 (devfn
0/8/16/...) and only scans for other functions if function 0 has its
Multi-Function Device bit set or ARI or SR-IOV indicate there are more
functions.

The Jailhouse hypervisor may pass individual functions of a multi-function
device to a guest without passing function 0, which means a Linux guest
won't find them.

Change Linux PCI probing so it scans all function numbers when running as a
guest over Jailhouse.

This is technically prohibited by the spec, so it is possible that PCI
devices without the Multi-Function Device bit set may have unexpected
behavior in response to this probe.

Originally-by: Benedikt Spranger <b.spranger@linutronix.de>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: jailhouse-dev@googlegroups.com
Cc: Benedikt Spranger <b.spranger@linutronix.de>
Cc: linux-pci@vger.kernel.org
Cc: virtualization@lists.linux-foundation.org
Link: https://lkml.kernel.org/r/06e279b2a3e06cf6689ab3975f8ab592bba02362.1520408357.git.jan.kiszka@siemens.com
2018-03-08 12:30:37 +01:00
..
cadence PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller 2018-01-31 11:13:27 +00:00
dwc Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
endpoint Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
host pci-v4.16-changes 2018-02-06 09:59:40 -08:00
hotplug More ACPI updates for v4.16-rc1 2018-02-09 09:44:25 -08:00
pcie pci-v4.16-changes 2018-02-06 09:59:40 -08:00
switch vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
access.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
ats.c PCI: Add SPDX GPL-2.0 when no license was specified 2018-01-26 11:45:16 -06:00
bus.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
ecam.c PCI: Add SPDX GPL-2.0 to replace GPL v2 boilerplate 2018-01-28 15:48:29 -06:00
host-bridge.c PCI: Add SPDX GPL-2.0 when no license was specified 2018-01-26 11:45:16 -06:00
iov.c pci-v4.16-changes 2018-02-06 09:59:40 -08:00
irq.c PCI: Add wrappers for dev_printk() 2018-01-18 12:55:24 -06:00
Kconfig Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
Makefile PCI: cadence: Add EndPoint Controller driver for Cadence PCIe controller 2018-01-31 11:13:27 +00:00
mmap.c PCI: Add SPDX GPL-2.0 to replace GPL v2 boilerplate 2018-01-28 15:48:29 -06:00
msi.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
of.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
pci-acpi.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
pci-driver.c pci-v4.16-changes 2018-02-06 09:59:40 -08:00
pci-label.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci-mid.c PCI: Add SPDX GPL-2.0 to replace GPL v2 boilerplate 2018-01-28 15:48:29 -06:00
pci-stub.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
pci-sysfs.c Merge branch 'pci/virtualization' into next 2018-01-31 10:13:09 -06:00
pci.c pci: Simplify code by using the new dmi_get_bios_year() helper 2018-02-23 08:20:31 +01:00
pci.h Merge branch 'pci/trivial' into next 2018-01-31 10:13:07 -06:00
probe.c PCI: Scan all functions when running over Jailhouse 2018-03-08 12:30:37 +01:00
proc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
quirks.c Merge branch 'pci/virtualization' into next 2018-01-31 10:13:09 -06:00
remove.c PCI: Add SPDX GPL-2.0 when no license was specified 2018-01-26 11:45:16 -06:00
rom.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
search.c PCI: Add SPDX GPL-2.0 when no license was specified 2018-01-26 11:45:16 -06:00
setup-bus.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
setup-irq.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
setup-res.c PCI: Add wrappers for dev_printk() 2018-01-18 12:55:24 -06:00
slot.c PCI: Add SPDX GPL-2.0 when no license was specified 2018-01-26 11:45:16 -06:00
syscall.c PCI: Deprecate pci_get_bus_and_slot() 2018-01-17 08:16:46 -06:00
vc.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
vpd.c PCI: Add SPDX GPL-2.0 when no license was specified 2018-01-26 11:45:16 -06:00
xen-pcifront.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00