2016-12-21 13:55:27

by Burak Ok

[permalink] [raw]
Subject: [PATCH] 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: [email protected]
Signed-off-by: Burak Ok <[email protected]>
Signed-off-by: Andreas Schaertl <[email protected]>
---
drivers/scsi/snic/snic_main.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/scsi/snic/snic_main.c b/drivers/scsi/snic/snic_main.c
index 396b32d..7cf70aa 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)
if (!pool) {
SNIC_HOST_ERR(shost, "dflt sgl pool creation failed\n");

+ ret = -ENOMEM;
goto err_free_res;
}

@@ -601,6 +602,7 @@ snic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (!pool) {
SNIC_HOST_ERR(shost, "max sgl pool creation failed\n");

+ ret = -ENOMEM;
goto err_free_dflt_sgl_pool;
}

@@ -611,6 +613,7 @@ snic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (!pool) {
SNIC_HOST_ERR(shost, "snic tmreq info pool creation failed.\n");

+ ret = -ENOMEM;
goto err_free_max_sgl_pool;
}

--
2.7.4


Subject: Re: [PATCH] snic: Return error code on memory allocation failure


On 21/12/16 7:15 pm, "Burak Ok" <[email protected]> wrote:

>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: [email protected]
>Signed-off-by: Burak Ok <[email protected]>
>Signed-off-by: Andreas Schaertl <[email protected]>
Acked-by: Narsimhulu Musini <[email protected]>
>---
> drivers/scsi/snic/snic_main.c | 3 +++
> 1 file changed, 3 insertions(+)
>
>diff --git a/drivers/scsi/snic/snic_main.c b/drivers/scsi/snic/snic_main.c
>index 396b32d..7cf70aa 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)
> if (!pool) {
> SNIC_HOST_ERR(shost, "dflt sgl pool creation failed\n");
>
>+ ret = -ENOMEM;
> goto err_free_res;
> }
>
>@@ -601,6 +602,7 @@ snic_probe(struct pci_dev *pdev, const struct
>pci_device_id *ent)
> if (!pool) {
> SNIC_HOST_ERR(shost, "max sgl pool creation failed\n");
>
>+ ret = -ENOMEM;
> goto err_free_dflt_sgl_pool;
> }
>
>@@ -611,6 +613,7 @@ snic_probe(struct pci_dev *pdev, const struct
>pci_device_id *ent)
> if (!pool) {
> SNIC_HOST_ERR(shost, "snic tmreq info pool creation failed.\n");
>
>+ ret = -ENOMEM;
> goto err_free_max_sgl_pool;
> }
>
>--
>2.7.4
>


2016-12-21 16:31:42

by Ewan Milne

[permalink] [raw]
Subject: Re: [PATCH] snic: Return error code on memory allocation failure

On Wed, 2016-12-21 at 14:45 +0100, Burak Ok wrote:
> 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: [email protected]
> Signed-off-by: Burak Ok <[email protected]>
> Signed-off-by: Andreas Schaertl <[email protected]>
> ---
> drivers/scsi/snic/snic_main.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/scsi/snic/snic_main.c b/drivers/scsi/snic/snic_main.c
> index 396b32d..7cf70aa 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)
> if (!pool) {
> SNIC_HOST_ERR(shost, "dflt sgl pool creation failed\n");
>
> + ret = -ENOMEM;
> goto err_free_res;
> }
>
> @@ -601,6 +602,7 @@ snic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (!pool) {
> SNIC_HOST_ERR(shost, "max sgl pool creation failed\n");
>
> + ret = -ENOMEM;
> goto err_free_dflt_sgl_pool;
> }
>
> @@ -611,6 +613,7 @@ snic_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (!pool) {
> SNIC_HOST_ERR(shost, "snic tmreq info pool creation failed.\n");
>
> + ret = -ENOMEM;
> goto err_free_max_sgl_pool;
> }
>

Reviewed-by: Ewan D. Milne <[email protected]>