Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d82e8bfd authored by Keith Busch's avatar Keith Busch Committed by Matthew Wilcox
Browse files

NVMe: Merge issue on character device bring-up



A recent patch made it possible to bring up the character handle when the
device is responsive but not accepting a set-features command. Another
recent patch moved the initialization that requires we move where the
checks for this condition occur. This patch merges these two ideas so
it works much as before.

Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
parent 9d713c2b
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -2135,10 +2135,10 @@ static int nvme_dev_start(struct nvme_dev *dev)
	spin_unlock(&dev_list_lock);

	result = nvme_setup_io_queues(dev);
	if (result)
	if (result && result != -EBUSY)
		goto disable;

	return 0;
	return result;

 disable:
	spin_lock(&dev_list_lock);
@@ -2177,13 +2177,17 @@ static int nvme_probe(struct pci_dev *pdev, const struct pci_device_id *id)
		goto release;

	result = nvme_dev_start(dev);
	if (result)
	if (result) {
		if (result == -EBUSY)
			goto create_cdev;
		goto release_pools;
	}

	result = nvme_dev_add(dev);
	if (result && result != -EBUSY)
	if (result)
		goto shutdown;

 create_cdev:
	scnprintf(dev->name, sizeof(dev->name), "nvme%d", dev->instance);
	dev->miscdev.minor = MISC_DYNAMIC_MINOR;
	dev->miscdev.parent = &pdev->dev;