|
@@ -2289,6 +2289,7 @@ static void nvme_remove_dead_ctrl(struct nvme_dev *dev, int status)
|
|
|
|
|
|
nvme_get_ctrl(&dev->ctrl);
|
|
|
nvme_dev_disable(dev, false);
|
|
|
+ nvme_kill_queues(&dev->ctrl);
|
|
|
if (!queue_work(nvme_wq, &dev->remove_work))
|
|
|
nvme_put_ctrl(&dev->ctrl);
|
|
|
}
|
|
@@ -2405,7 +2406,6 @@ static void nvme_remove_dead_ctrl_work(struct work_struct *work)
|
|
|
struct nvme_dev *dev = container_of(work, struct nvme_dev, remove_work);
|
|
|
struct pci_dev *pdev = to_pci_dev(dev->dev);
|
|
|
|
|
|
- nvme_kill_queues(&dev->ctrl);
|
|
|
if (pci_get_drvdata(pdev))
|
|
|
device_release_driver(&pdev->dev);
|
|
|
nvme_put_ctrl(&dev->ctrl);
|