NVMe: Fix error clean-up on nvme_alloc_queue
authorKeith Busch <keith.busch@intel.com>
Wed, 1 May 2013 19:07:47 +0000 (13:07 -0600)
committerMatthew Wilcox <matthew.r.wilcox@intel.com>
Thu, 2 May 2013 18:34:35 +0000 (14:34 -0400)
The nvme_queue's depth is not set if we fail to allocate submission queue
entries, which was being used to determine how much coherent memory to
free on error. Use the depth variable instead.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
drivers/block/nvme-core.c

index 391a874e41330bb6a2cbf347070c787b671f0f43..388c54d84809f57f650953834378e3b3ff4df6e3 100644 (file)
@@ -956,7 +956,7 @@ static struct nvme_queue *nvme_alloc_queue(struct nvme_dev *dev, int qid,
        return nvmeq;
 
  free_cqdma:
-       dma_free_coherent(dmadev, CQ_SIZE(nvmeq->q_depth), (void *)nvmeq->cqes,
+       dma_free_coherent(dmadev, CQ_SIZE(depth), (void *)nvmeq->cqes,
                                                        nvmeq->cq_dma_addr);
  free_nvmeq:
        kfree(nvmeq);