mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: James Smart <james.smart@broadcom.com>
To: "wubo (T)" <wubo40@huawei.com>,
	"dick.kennedy@broadcom.com" <dick.kennedy@broadcom.com>,
	"jejb@linux.vnet.ibm.com" <jejb@linux.vnet.ibm.com>,
	"martin.petersen@oracle.com" <martin.petersen@oracle.com>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "liuzhiqiang (I)" <liuzhiqiang26@huawei.com>,
	Mingfangsen <mingfangsen@huawei.com>
Subject: Re: [PATCH] scsi:lpfc:Fix memory leak on lpfc_bsg_write_ebuf_set func
Date: Mon, 9 Dec 2019 09:48:44 -0800	[thread overview]
Message-ID: <4afb52b8-c3ff-8c29-2597-11b8428e75b1@broadcom.com> (raw)
In-Reply-To: <EDBAAA0BBBA2AC4E9C8B6B81DEEE1D6915E7A966@DGGEML525-MBS.china.huawei.com>

On 12/6/2019 7:22 PM, wubo (T) wrote:
> When phba->mbox_ext_buf_ctx.seqNum != phba->mbox_ext_buf_ctx.numBuf,
> dd_data should be freed before return SLI_CONFIG_HANDLED.
>
> When lpfc_sli_issue_mbox func return fails, pmboxq should be also freed in job_error tag.
>
>
> Signed-off-by:Bo wu <wubo40@huawei.com>
> Reviewed-by:Zhiqiang Liu <liuzhiqiang26@huawei.com>
> ---
>   drivers/scsi/lpfc/lpfc_bsg.c | 15 +++++++++------
>   1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_bsg.c b/drivers/scsi/lpfc/lpfc_bsg.c
> index 39a736b887b1..6c2b03415a2c 100644
> --- a/drivers/scsi/lpfc/lpfc_bsg.c
> +++ b/drivers/scsi/lpfc/lpfc_bsg.c
> @@ -4489,12 +4489,6 @@ lpfc_bsg_write_ebuf_set(struct lpfc_hba *phba, struct bsg_job *job,
>   	phba->mbox_ext_buf_ctx.seqNum++;
>   	nemb_tp = phba->mbox_ext_buf_ctx.nembType;
>   
> -	dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
> -	if (!dd_data) {
> -		rc = -ENOMEM;
> -		goto job_error;
> -	}
> -
>   	pbuf = (uint8_t *)dmabuf->virt;
>   	size = job->request_payload.payload_len;
>   	sg_copy_to_buffer(job->request_payload.sg_list,
> @@ -4531,6 +4525,13 @@ lpfc_bsg_write_ebuf_set(struct lpfc_hba *phba, struct bsg_job *job,
>   				"2968 SLI_CONFIG ext-buffer wr all %d "
>   				"ebuffers received\n",
>   				phba->mbox_ext_buf_ctx.numBuf);
> +
> +		dd_data = kmalloc(sizeof(struct bsg_job_data), GFP_KERNEL);
> +		if (!dd_data) {
> +			rc = -ENOMEM;
> +			goto job_error;
> +		}
> +
>   		/* mailbox command structure for base driver */
>   		pmboxq = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
>   		if (!pmboxq) {
> @@ -4579,6 +4580,8 @@ lpfc_bsg_write_ebuf_set(struct lpfc_hba *phba, struct bsg_job *job,
>   	return SLI_CONFIG_HANDLED;
>   
>   job_error:
> +	if (pmboxq)
> +		mempool_free(pmboxq, phba->mbox_mem_pool);
>   	lpfc_bsg_dma_page_free(phba, dmabuf);
>   	kfree(dd_data);
>   

Looks good!

Reviewed-by: James Smart <james.smart@broadcom.com>

-- james



  reply	other threads:[~2019-12-09 17:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-07  3:22 wubo (T)
2019-12-09 17:48 ` James Smart [this message]
2019-12-09 23:09 ` Martin K. Petersen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4afb52b8-c3ff-8c29-2597-11b8428e75b1@broadcom.com \
    --to=james.smart@broadcom.com \
    --cc=dick.kennedy@broadcom.com \
    --cc=jejb@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=liuzhiqiang26@huawei.com \
    --cc=martin.petersen@oracle.com \
    --cc=mingfangsen@huawei.com \
    --cc=wubo40@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®