Message ID | 1502193771-20271-1-git-send-email-bianpan2016@163.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
On Tue, Aug 8, 2017 at 2:02 PM, Pan Bian <bianpan2016@163.com> wrote: > The return value of scsi_host_alloc() should be released by > scsi_host_put(). However, in function mvs_pci_init(), kfree() > is used. This patch replaces kfree() with scsi_host_put() to avoid > possible memory leaks. > > Signed-off-by: Pan Bian <bianpan2016@163.com> > --- > drivers/scsi/mvsas/mv_init.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c > index 4e047b5..75bdb38 100644 > --- a/drivers/scsi/mvsas/mv_init.c > +++ b/drivers/scsi/mvsas/mv_init.c > @@ -557,14 +557,14 @@ static int mvs_pci_init(struct pci_dev *pdev, const struct pci_device_id *ent) > SHOST_TO_SAS_HA(shost) = > kcalloc(1, sizeof(struct sas_ha_struct), GFP_KERNEL); > if (!SHOST_TO_SAS_HA(shost)) { > - kfree(shost); > + scsi_host_put(shost); > rc = -ENOMEM; > goto err_out_regions; > } > > rc = mvs_prep_sas_ha_init(shost, chip); > if (rc) { > - kfree(shost); > + scsi_host_put(shost); > rc = -ENOMEM; > goto err_out_regions; > } > -- > 1.9.1 > > Looks good to me! Thanks Pan! Reviewed-by: Jack Wang <jinpu.wang@profitbricks.com>
Pan, > The return value of scsi_host_alloc() should be released by > scsi_host_put(). However, in function mvs_pci_init(), kfree() > is used. This patch replaces kfree() with scsi_host_put() to avoid > possible memory leaks. Applied to 4.14/scsi-queue.
diff --git a/drivers/scsi/mvsas/mv_init.c b/drivers/scsi/mvsas/mv_init.c index 4e047b5..75bdb38 100644 --- a/drivers/scsi/mvsas/mv_init.c +++ b/drivers/scsi/mvsas/mv_init.c @@ -557,14 +557,14 @@ static int mvs_pci_init(struct pci_dev *pdev, const struct pci_device_id *ent) SHOST_TO_SAS_HA(shost) = kcalloc(1, sizeof(struct sas_ha_struct), GFP_KERNEL); if (!SHOST_TO_SAS_HA(shost)) { - kfree(shost); + scsi_host_put(shost); rc = -ENOMEM; goto err_out_regions; } rc = mvs_prep_sas_ha_init(shost, chip); if (rc) { - kfree(shost); + scsi_host_put(shost); rc = -ENOMEM; goto err_out_regions; }
The return value of scsi_host_alloc() should be released by scsi_host_put(). However, in function mvs_pci_init(), kfree() is used. This patch replaces kfree() with scsi_host_put() to avoid possible memory leaks. Signed-off-by: Pan Bian <bianpan2016@163.com> --- drivers/scsi/mvsas/mv_init.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)