nvme: move the call to nvme_init_identify earlier
authorChristoph Hellwig <hch@lst.de>
Fri, 16 Oct 2015 05:58:46 +0000 (07:58 +0200)
committerJens Axboe <axboe@fb.com>
Tue, 1 Dec 2015 17:59:40 +0000 (10:59 -0700)
We want to record the identify and CAP values even if no I/O queue
is available.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/nvme/host/pci.c

index 086563fe6ed186f9ee1464f74c448bc137bb6353..4d64aee61aea782af944696854ded0b74b98f5be 100644 (file)
@@ -1930,12 +1930,6 @@ static void nvme_dev_scan(struct work_struct *work)
  */
 static int nvme_dev_add(struct nvme_dev *dev)
 {
-       int res;
-
-       res = nvme_init_identify(&dev->ctrl);
-       if (res)
-               return res;
-
        if (!dev->tagset.tags) {
                dev->tagset.ops = &nvme_mq_ops;
                dev->tagset.nr_hw_queues = dev->online_queues - 1;
@@ -2431,6 +2425,10 @@ static void nvme_probe_work(struct work_struct *work)
        if (result)
                goto disable;
 
+       result = nvme_init_identify(&dev->ctrl);
+       if (result)
+               goto free_tags;
+
        result = nvme_setup_io_queues(dev);
        if (result)
                goto free_tags;