On Thu, Jun 2, 2016 at 10:17 AM, Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> wrote: > If a PCI bridge (or PCIe port) that is runtime suspended gets an ACPI > hotplug event, such as BUS_CHECK we need to make sure it is resumed before > devices below the bridge are re-scanned. Otherwise the devices behind the > port are not accessible and will be treated as hot-unplugged. > > To fix this, resume PCI bridges from runtime suspend while rescanning. > > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > --- > drivers/pci/hotplug/acpiphp_glue.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c > index fa49f9143b80..6a33ddcfa20b 100644 > --- a/drivers/pci/hotplug/acpiphp_glue.c > +++ b/drivers/pci/hotplug/acpiphp_glue.c > @@ -675,6 +675,8 @@ static void acpiphp_check_bridge(struct acpiphp_bridge *bridge) > if (bridge->is_going_away) > return; > > + pm_runtime_get_sync(&bridge->pci_dev->dev); > + > list_for_each_entry(slot, &bridge->slots, node) { > struct pci_bus *bus = slot->bus; > struct pci_dev *dev, *tmp; > @@ -694,6 +696,8 @@ static void acpiphp_check_bridge(struct acpiphp_bridge *bridge) > disable_slot(slot); > } > } > + > + pm_runtime_put(&bridge->pci_dev->dev); > } > > /* > -- -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html