aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBurak Ok <burak-kernel@bur0k.de>2016-12-21 08:45:53 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2017-01-05 20:45:42 -0500
commit0371adcdaca92912baaa3256ed13e058a016e62d (patch)
treef87f61abdbe10d1a26b87231547633cc586efe33
parent9698b6f473555a722bf81a3371998427d5d27bde (diff)
scsi: snic: Return error code on memory allocation failure
If a call to mempool_create_slab_pool() in snic_probe() returns NULL, return -ENOMEM to indicate failure. mempool_creat_slab_pool() only fails if it cannot allocate memory. https://bugzilla.kernel.org/show_bug.cgi?id=189061 Reported-by: bianpan2010@ruc.edu.cn Signed-off-by: Burak Ok <burak-kernel@bur0k.de> Signed-off-by: Andreas Schaertl <andreas.schaertl@fau.de> Acked-by: Narsimhulu Musini <nmusini@cisco.com> Reviewed-by: Ewan D. Milne <emilne@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/snic/snic_main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/snic/snic_main.c b/drivers/scsi/snic/snic_main.c
index 396b32dca074..7cf70aaec0ba 100644
--- a/drivers/scsi/snic/snic_main.c
+++ b/drivers/scsi/snic/snic_main.c
@@ -591,6 +591,7 @@ snic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
591 if (!pool) { 591 if (!pool) {
592 SNIC_HOST_ERR(shost, "dflt sgl pool creation failed\n"); 592 SNIC_HOST_ERR(shost, "dflt sgl pool creation failed\n");
593 593
594 ret = -ENOMEM;
594 goto err_free_res; 595 goto err_free_res;
595 } 596 }
596 597
@@ -601,6 +602,7 @@ snic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
601 if (!pool) { 602 if (!pool) {
602 SNIC_HOST_ERR(shost, "max sgl pool creation failed\n"); 603 SNIC_HOST_ERR(shost, "max sgl pool creation failed\n");
603 604
605 ret = -ENOMEM;
604 goto err_free_dflt_sgl_pool; 606 goto err_free_dflt_sgl_pool;
605 } 607 }
606 608
@@ -611,6 +613,7 @@ snic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
611 if (!pool) { 613 if (!pool) {
612 SNIC_HOST_ERR(shost, "snic tmreq info pool creation failed.\n"); 614 SNIC_HOST_ERR(shost, "snic tmreq info pool creation failed.\n");
613 615
616 ret = -ENOMEM;
614 goto err_free_max_sgl_pool; 617 goto err_free_max_sgl_pool;
615 } 618 }
616 619