Message ID | 20190925144543.10141-1-navid.emamdoost@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | IB/hfi1: prevent memory leak in sdma_init | expand |
On 9/25/2019 10:45 AM, Navid Emamdoost wrote: > In sdma_init if rhashtable_init fails the allocated memory for > tmp_sdma_rht should be released. > > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> > --- > drivers/infiniband/hw/hfi1/sdma.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1/sdma.c > index 2395fd4233a7..2ed7bfd5feea 100644 > --- a/drivers/infiniband/hw/hfi1/sdma.c > +++ b/drivers/infiniband/hw/hfi1/sdma.c > @@ -1526,8 +1526,11 @@ int sdma_init(struct hfi1_devdata *dd, u8 port) > } > > ret = rhashtable_init(tmp_sdma_rht, &sdma_rht_params); > - if (ret < 0) > + if (ret < 0) { > + kfree(tmp_sdma_rht); > goto bail; > + } > + > dd->sdma_rht = tmp_sdma_rht; > > dd_dev_info(dd, "SDMA num_sdma: %u\n", dd->num_sdma); > Yeah looks like a problem to me, thanks. Acked-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
diff --git a/drivers/infiniband/hw/hfi1/sdma.c b/drivers/infiniband/hw/hfi1/sdma.c index 2395fd4233a7..2ed7bfd5feea 100644 --- a/drivers/infiniband/hw/hfi1/sdma.c +++ b/drivers/infiniband/hw/hfi1/sdma.c @@ -1526,8 +1526,11 @@ int sdma_init(struct hfi1_devdata *dd, u8 port) } ret = rhashtable_init(tmp_sdma_rht, &sdma_rht_params); - if (ret < 0) + if (ret < 0) { + kfree(tmp_sdma_rht); goto bail; + } + dd->sdma_rht = tmp_sdma_rht; dd_dev_info(dd, "SDMA num_sdma: %u\n", dd->num_sdma);
In sdma_init if rhashtable_init fails the allocated memory for tmp_sdma_rht should be released. Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> --- drivers/infiniband/hw/hfi1/sdma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)