Browse Source

NVMe: Fix nvme module init when nvme_major is set

register_blkdev returns 0 when given a valid major number.

Reported-by:Ross Zwisler <ross.zwisler@intel.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Keith Busch 13 years ago
parent
commit
5c42ea1643
1 changed files with 4 additions and 2 deletions
  1. 4 2
      drivers/block/nvme.c

+ 4 - 2
drivers/block/nvme.c

@@ -1716,9 +1716,11 @@ static int __init nvme_init(void)
 	if (IS_ERR(nvme_thread))
 		return PTR_ERR(nvme_thread);
 
-	nvme_major = register_blkdev(nvme_major, "nvme");
-	if (nvme_major <= 0)
+	result = register_blkdev(nvme_major, "nvme");
+	if (result < 0)
 		goto kill_kthread;
+	else if (result > 0)
+	    nvme_major = result;
 
 	result = pci_register_driver(&nvme_driver);
 	if (result)