You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
NVMe: Check returns from nvme_alloc_queue()
It can return NULL, so handle that. Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
This commit is contained in:
@@ -619,6 +619,9 @@ static __devinit struct nvme_queue *nvme_create_queue(struct nvme_dev *dev,
|
|||||||
int result;
|
int result;
|
||||||
struct nvme_queue *nvmeq = nvme_alloc_queue(dev, qid, cq_size, vector);
|
struct nvme_queue *nvmeq = nvme_alloc_queue(dev, qid, cq_size, vector);
|
||||||
|
|
||||||
|
if (!nvmeq)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
result = adapter_alloc_cq(dev, qid, nvmeq);
|
result = adapter_alloc_cq(dev, qid, nvmeq);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
goto free_nvmeq;
|
goto free_nvmeq;
|
||||||
@@ -655,6 +658,8 @@ static int __devinit nvme_configure_admin_queue(struct nvme_dev *dev)
|
|||||||
dev->dbs = ((void __iomem *)dev->bar) + 4096;
|
dev->dbs = ((void __iomem *)dev->bar) + 4096;
|
||||||
|
|
||||||
nvmeq = nvme_alloc_queue(dev, 0, 64, 0);
|
nvmeq = nvme_alloc_queue(dev, 0, 64, 0);
|
||||||
|
if (!nvmeq)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
aqa = nvmeq->q_depth - 1;
|
aqa = nvmeq->q_depth - 1;
|
||||||
aqa |= aqa << 16;
|
aqa |= aqa << 16;
|
||||||
|
|||||||
Reference in New Issue
Block a user