Re: [PATCH v4] NVMe: basic conversion to blk-mq

From: Keith Busch
Date: Fri May 30 2014 - 12:48:41 EST


On Thu, 29 May 2014, Matias BjÃrling wrote:
This converts the current NVMe driver to utilize the blk-mq layer.

I'm pretty darn sure this new nvme_remove can cause a process
with an open reference to use queues after they're freed in the
nvme_submit_sync_command path, maybe even the admin tags too.

@@ -2802,7 +2574,7 @@ static void nvme_remove(struct pci_dev *pdev)
nvme_dev_remove(dev);
nvme_dev_shutdown(dev);
nvme_free_queues(dev, 0);
- rcu_barrier();
+ nvme_free_admin_tags(dev);
nvme_release_instance(dev);
nvme_release_prp_pools(dev);
kref_put(&dev->kref, nvme_free_dev);