ACPI / hotplug / PCI: Remove entries from bus->devices in reverse order
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 3 Feb 2014 01:22:07 +0000 (02:22 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 3 Feb 2014 21:28:02 +0000 (22:28 +0100)
commit2d7c1b77dd59387070aab355532dd157f888325c
tree7059fc37413f11ff25b87d78d6c068b8c0091734
parent38dbfb59d1175ef458d006556061adeaa8751b72
ACPI / hotplug / PCI: Remove entries from bus->devices in reverse order

According to the changelog of commit 29ed1f29b68a (PCI: pciehp: Fix null
pointer deref when hot-removing SR-IOV device) it is unsafe to walk the
bus->devices list of a PCI bus and remove devices from it in direct order,
because that may lead to NULL pointer dereferences related to virtual
functions.

For this reason, change all of the bus->devices list walks in
acpiphp_glue.c during which devices may be removed to be carried out in
reverse order.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/pci/hotplug/acpiphp_glue.c