linux/drivers/pci/hotplug
Lukas Wunner 6ef13824e0 ACPI / hotplug / PCI: Use cached copy of PCI_EXP_SLTCAP_HPC bit
We cache the PCI_EXP_SLTCAP_HPC bit in pci_dev->is_hotplug_bridge on device
probe, so there's no need to read it again when adding the ACPI hotplug
context.

Here's the call chain to prove that no ordering issue is introduced:

pci_scan_child_bus [drivers/pci/probe.c]
  pci_scan_slot
    pci_scan_single_device
      pci_scan_device
        pci_setup_device
          set_pcie_hotplug_bridge
            [is_hotplug_bridge bit is set here]
  pci_scan_bridge
    pci_add_new_bus
      pci_alloc_child_bus
        pcibios_add_bus  [arch/(x86|arm64|ia64)/...]
          acpi_pci_add_bus [drivers/pci/pci-acpi.c]
            acpiphp_enumerate_slots [drivers/pci/hotplug/acpiphp_glue.c]
              acpiphp_add_context
                device_is_managed_by_native_pciehp
                  [is_hotplug_bridge bit is queried here]

No functional change intended.

Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-17 18:47:38 -06:00
..
acpi_pcihp.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
acpiphp_core.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
acpiphp_glue.c ACPI / hotplug / PCI: Use cached copy of PCI_EXP_SLTCAP_HPC bit 2016-11-17 18:47:38 -06:00
acpiphp_ibm.c PCI: acpiphp_ibm: Avoid uninitialized variable reference 2016-04-15 10:17:03 -05:00
acpiphp.h PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpci_hotplug_core.c PCI: hotplug: Make core explicitly non-modular 2016-08-24 17:20:14 -05:00
cpci_hotplug_pci.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpci_hotplug.h PCI: hotplug: Make core explicitly non-modular 2016-08-24 17:20:14 -05:00
cpcihp_generic.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpcihp_zt5550.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpcihp_zt5550.h PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
cpqphp_core.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpqphp_ctrl.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpqphp_nvram.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpqphp_nvram.h PCI: Remove "extern" from function declarations 2013-04-17 10:21:17 -06:00
cpqphp_pci.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpqphp_sysfs.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
cpqphp.h PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
ibmphp_core.c Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
ibmphp_ebda.c Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
ibmphp_hpc.c Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
ibmphp_pci.c Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
ibmphp_res.c Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
ibmphp.h PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
Kconfig PCI/hotplug: PowerPC PowerNV PCI hotplug driver 2016-06-21 15:30:58 +10:00
Makefile PCI/hotplug: PowerPC PowerNV PCI hotplug driver 2016-06-21 15:30:58 +10:00
pci_hotplug_core.c PCI: hotplug: Make core explicitly non-modular 2016-08-24 17:20:14 -05:00
pciehp_core.c Merge branch 'pci/hotplug' into next 2016-10-03 09:43:19 -05:00
pciehp_ctrl.c PCI: pciehp: Remove useless pciehp_get_latch_status() calls 2016-09-14 14:25:05 -05:00
pciehp_hpc.c PCI: pciehp: Allow exclusive userspace control of indicators 2016-09-22 18:20:11 -05:00
pciehp_pci.c PCI: pciehp: Remove pci_configure_slot() usage 2014-09-12 20:09:47 -06:00
pciehp.h PCI: pciehp: Allow exclusive userspace control of indicators 2016-09-22 18:20:11 -05:00
pcihp_skeleton.c Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
pnv_php.c drivers/pci/hotplug: Use of_property_read_u32() in powernv driver 2016-10-04 16:22:47 +11:00
rpadlpar_core.c powerpc/pci: Rename pcibios_find_pci_bus() 2016-05-11 21:54:24 +10:00
rpadlpar_sysfs.c
rpadlpar.h PCI: Remove "extern" from function declarations 2013-04-17 10:21:17 -06:00
rpaphp_core.c powerpc/pci: Rename pcibios_{add, remove}_pci_devices() 2016-05-11 21:54:23 +10:00
rpaphp_pci.c powerpc/pci: Rename pcibios_find_pci_bus() 2016-05-11 21:54:24 +10:00
rpaphp_slot.c PCI: rpaphp: Fix slot registration for multiple slots under a PHB 2016-07-20 11:54:55 +10:00
rpaphp.h PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
s390_pci_hpc.c s390/pci: remove pdev pointer from arch data 2016-02-23 08:56:16 +01:00
sgi_hotplug.c PCI: Fix all whitespace issues 2016-01-08 10:35:24 -06:00
shpchp_core.c Merge branch 'pci/trivial' into next 2016-01-20 11:48:25 -06:00
shpchp_ctrl.c PCI: Remove assignment from "if" conditions 2014-09-24 07:50:53 -06:00
shpchp_hpc.c PCI: shpchp: Constify hpc_ops structure 2016-01-08 12:10:00 -06:00
shpchp_pci.c PCI: shpchp: Remove pci_configure_slot() usage 2014-09-12 20:09:49 -06:00
shpchp_sysfs.c PCI: Use to_pci_dev() instead of open-coding it 2016-01-08 12:05:39 -06:00
shpchp.h PCI: shpchp: Constify hpc_ops structure 2016-01-08 12:10:00 -06:00