RDMA/rtrs: Fix the last iu->buf leak in err path
The last iu->buf will leak if ib_dma_mapping_error() fails.
Fixes: c0894b3ea6
("RDMA/rtrs: core: lib functions shared between client and server modules")
Link: https://lore.kernel.org/r/1682384563-2-3-git-send-email-lizhijian@fujitsu.com
Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
Acked-by: Guoqing Jiang <guoqing.jiang@linux.dev>
Acked-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
5842d1d9c1
commit
3bf3a7c698
|
@ -37,8 +37,10 @@ struct rtrs_iu *rtrs_iu_alloc(u32 iu_num, size_t size, gfp_t gfp_mask,
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
iu->dma_addr = ib_dma_map_single(dma_dev, iu->buf, size, dir);
|
iu->dma_addr = ib_dma_map_single(dma_dev, iu->buf, size, dir);
|
||||||
if (ib_dma_mapping_error(dma_dev, iu->dma_addr))
|
if (ib_dma_mapping_error(dma_dev, iu->dma_addr)) {
|
||||||
|
kfree(iu->buf);
|
||||||
goto err;
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
iu->cqe.done = done;
|
iu->cqe.done = done;
|
||||||
iu->size = size;
|
iu->size = size;
|
||||||
|
|
Loading…
Reference in New Issue