alistair23-linux/drivers/pci
Rafael J. Wysocki d41be3466f ACPI / hotplug / PCI: Check ignore_hotplug for all downstream devices
If the ignore_hotplug flag is set for a PCI device without an ACPI
companion and a bus check notification is received for an ancestor bridge
that is not the device's parent, ACPIPHP will ignore that flag.

Namely, in that case acpiphp_check_bridge() is called for the target bridge
and if all of the devices immediately below the bridge are still present,
trim_stale_devices() will be called for each of them.  That function
recursively walks the hierarchy downwards and removes device objects
corresponding to devices that don't appear to be present any more.
Unfortunately, it only checks ignore_hotplug for devices having ACPI
companions, so it will remove the others (if they don't respond) regardless
of the ignore_hotplug value.

Fix the problem by making trim_stale_devices() take ignore_hotplug into
consideration regardless of whether or not an ACPI companion is present for
the device it has been called for.

[bhelgaas: This may fix bug 61891, depending on whether the bridge above a
device is removed along with the device]
Link: https://bugzilla.kernel.org/show_bug.cgi?id=61891
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2015-05-22 17:38:50 -05:00
..
host PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
hotplug ACPI / hotplug / PCI: Check ignore_hotplug for all downstream devices 2015-05-22 17:38:50 -05:00
pcie PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
access.c PCI: Add generic config accessors 2015-01-22 13:59:45 -06:00
ats.c
bus.c PCI: Use common resource list management code instead of private implementation 2015-02-05 15:09:25 +01:00
host-bridge.c Merge branch 'pci/misc' into next 2015-04-10 08:27:18 -05:00
hotplug-pci.c
htirq.c
iov.c PCI: Add pcibios_iov_resource_alignment() interface 2015-03-31 13:02:36 +11:00
irq.c
Kconfig
Makefile
msi.c PCI: Fail MSI-X mappings if there's no space assigned to MSI-X BAR 2015-01-28 09:25:57 -06:00
of.c
pci-acpi.c PCI changes for the v4.1 merge window: 2015-04-13 15:45:47 -07:00
pci-driver.c ACPI and power management updates for v3.20-rc1 2015-02-10 15:09:41 -08: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: Don't read past the end of sysfs "driver_override" buffer 2015-02-24 17:35:37 -06:00
pci.c Merge branch 'pci/misc' into next 2015-04-10 08:27:18 -05:00
pci.h powerpc updates for 4.1 2015-04-16 13:53:32 -05:00
probe.c Merge branches 'pci/host-exynos', 'pci/host-iproc', 'pci/host-keystone', 'pci/host-layerscape', 'pci/host-mvebu', 'pci/host-rcar' and 'pci/host-versatile' into next 2015-04-10 08:26:54 -05:00
proc.c
quirks.c Merge branch 'pci/misc' into next 2015-04-10 08:27:18 -05:00
remove.c PCI: Export symbols required for loadable host driver modules 2015-04-08 14:17:10 -05:00
rom.c PCI: Fix infinite loop with ROM image of size 0 2015-01-23 17:42:59 -06:00
search.c
setup-bus.c powerpc updates for 4.1 2015-04-16 13:53:32 -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: Mark invalid BARs as unassigned 2015-03-12 18:52:12 -05:00
slot.c
syscall.c
vc.c
vpd.c
xen-pcifront.c xenbus_client: Extend interface to support multi-page ring 2015-04-15 10:56:47 +01:00