From: Keith Busch <kbusch@xxxxxxxxxx> This used to be called unconditionally, but was inadvertently changed to call it only once. Restore the previously existing behavior. Fixes: 6d6d962a8dc2 ("pci: make pci_stop_dev concurrent safe") Suggested-by: Lukas Wunner <lukas@xxxxxxxxx> Signed-off-by: Keith Busch <kbusch@xxxxxxxxxx> --- drivers/pci/remove.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pci/remove.c b/drivers/pci/remove.c index 2e940101ce1bf..36467558c0144 100644 --- a/drivers/pci/remove.c +++ b/drivers/pci/remove.c @@ -31,10 +31,10 @@ static int pci_pwrctl_unregister(struct device *dev, void *data) static void pci_stop_dev(struct pci_dev *dev) { + pci_pme_active(dev, false); + if (!pci_dev_test_and_clear_added(dev)) return; - - pci_pme_active(dev, false); device_for_each_child(dev->dev.parent, dev_of_node(&dev->dev), pci_pwrctl_unregister); device_release_driver(&dev->dev); -- 2.43.5