diff options
| author | Burak Ok <burak-kernel@bur0k.de> | 2016-12-21 08:45:53 -0500 |
|---|---|---|
| committer | Martin K. Petersen <martin.petersen@oracle.com> | 2017-01-05 20:45:42 -0500 |
| commit | 0371adcdaca92912baaa3256ed13e058a016e62d (patch) | |
| tree | f87f61abdbe10d1a26b87231547633cc586efe33 | |
| parent | 9698b6f473555a722bf81a3371998427d5d27bde (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.c | 3 |
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 | ||
