linux/drivers/pci
Nicolai Stange b08dc7d4cf PCI: Fix race condition with driver_override
commit 9561475db6 upstream.

The driver_override implementation is susceptible to a race condition when
different threads are reading vs. storing a different driver override.  Add
locking to avoid the race condition.

This is in close analogy to commit 6265539776 ("driver core: platform:
fix race condition with driver_override") from Adrian Salido.

Fixes: 782a985d7a ("PCI: Introduce new device binding path using pci_dev.driver_override")
Signed-off-by: Nicolai Stange <nstange@suse.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-10-05 09:41:46 +02:00
..
host PCI: keystone: Fix MSI code that retrieves struct pcie_port pointer 2016-03-09 15:34:49 -08:00
hotplug PCI: shpchp: Enable bridge bus mastering if MSI is enabled 2017-09-27 11:00:16 +02:00
pcie PCI/ASPM: Handle PCI-to-PCIe bridges as roots of PCIe hierarchies 2017-02-09 08:02:44 +01:00
access.c PCI: Use function 0 VPD for identical functions, regular VPD for others 2015-09-24 17:06:32 -05:00
ats.c PCI: Remove pci_ats_enabled() 2015-08-13 15:59:59 -05:00
bus.c PCI: Fix minimum allocation address overwrite 2016-02-17 12:30:56 -08:00
host-bridge.c Merge branch 'pci/misc' into next 2015-04-10 08:27:18 -05:00
hotplug-pci.c
htirq.c x86/htirq: Use hierarchical irqdomain to manage Hypertransport interrupts 2015-04-24 15:36:50 +02:00
iov.c PCI: Do any VF BAR updates before enabling the BARs 2017-03-30 09:35:20 +02:00
irq.c
Kconfig PCI,parisc: Enable 64-bit bus addresses on PA-RISC 2015-09-08 15:30:47 +02:00
Makefile PCI: Build setup-irq.o for arm64 2015-08-20 12:02:49 -05:00
msi.c genirq/msi: Make sure PCI MSIs are activated early 2016-09-07 08:32:38 +02:00
of.c PCI/MSI: Use of_msi_get_domain instead of open-coded "msi-parent" parsing 2015-10-16 13:07:14 +01:00
pci-acpi.c PCI / ACPI: Fix pci_acpi_optimize_delay() comment 2015-07-15 15:11:50 -05:00
pci-driver.c PCI/PM: Restore the status of PCI devices across hibernation 2017-07-27 15:06:05 -07:00
pci-label.c PCI: Make a shareable UUID for PCI firmware ACPI _DSM 2015-04-08 14:39:30 -05:00
pci-stub.c
pci-sysfs.c PCI: Fix race condition with driver_override 2017-10-05 09:41:46 +02:00
pci.c PCI: Freeze PME scan before suspending devices 2017-05-25 14:30:17 +02:00
pci.h PCI: Remove pci_resource_bar() and pci_iov_resource_bar() 2017-03-30 09:35:19 +02:00
probe.c PCI: Decouple IORESOURCE_ROM_ENABLE and PCI_ROM_ADDRESS_ENABLE 2017-03-30 09:35:19 +02:00
proc.c
quirks.c PCI: Mark Atheros AR9580 to avoid bus reset 2016-10-28 03:01:26 -04:00
remove.c PCI: Embed ATS info directly into struct pci_dev 2015-08-13 15:57:21 -05:00
rom.c PCI: Add comments about ROM BAR updating 2017-03-30 09:35:19 +02:00
search.c PCI: Delete unnecessary NULL pointer checks 2014-11-10 21:02:17 -07:00
setup-bus.c PCI: Handle IORESOURCE_PCI_FIXED when assigning resources 2015-10-29 17:35:39 -05:00
setup-irq.c PCI: Export symbols required for loadable host driver modules 2015-04-08 14:17:10 -05:00
setup-res.c PCI: Ignore BAR updates on virtual functions 2017-03-30 09:35:20 +02:00
slot.c PCI: Hold pci_slot_mutex while searching bus->slots list 2015-07-30 16:19:53 -05:00
syscall.c
vc.c PCI: Use dev->has_secondary_link to find downstream PCIe links 2015-05-29 15:35:26 -05:00
vpd.c
xen-pcifront.c xen/pcifront: Fix mysterious crashes when NUMA locality information was extracted. 2016-03-03 15:07:30 -08:00