Commit c81f4975 authored by Keith Busch's avatar Keith Busch Committed by Jens Axboe
Browse files

NVMe: Use pci_stop_and_remove_bus_device_locked()



Race conditions are theoretically possible between the NVMe PCI device
removal and the generic PCI bus rescan and device removal that can be
triggered via sysfs.

To avoid those race conditions make the NVMe code use
pci_stop_and_remove_bus_device_locked().

Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent badc34d4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2759,7 +2759,7 @@ static int nvme_remove_dead_ctrl(void *arg)
	struct pci_dev *pdev = dev->pci_dev;

	if (pci_get_drvdata(pdev))
		pci_stop_and_remove_bus_device(pdev);
		pci_stop_and_remove_bus_device_locked(pdev);
	kref_put(&dev->kref, nvme_free_dev);
	return 0;
}