mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-29 20:06:38 +07:00
mlx4_core: Remove kfree() in mlx4_mr_alloc() error flow
mlx4_mr_alloc() doesn't actually allocate mr (it just initializes the pointer that the caller passes in), so it shouldn't free it if an error occurs. Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
4e8e6ee380
commit
0172e2e14c
@ -255,10 +255,8 @@ int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access,
|
||||
int err;
|
||||
|
||||
index = mlx4_bitmap_alloc(&priv->mr_table.mpt_bitmap);
|
||||
if (index == -1) {
|
||||
err = -ENOMEM;
|
||||
goto err;
|
||||
}
|
||||
if (index == -1)
|
||||
return -ENOMEM;
|
||||
|
||||
mr->iova = iova;
|
||||
mr->size = size;
|
||||
@ -269,15 +267,8 @@ int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access,
|
||||
|
||||
err = mlx4_mtt_init(dev, npages, page_shift, &mr->mtt);
|
||||
if (err)
|
||||
goto err_index;
|
||||
mlx4_bitmap_free(&priv->mr_table.mpt_bitmap, index);
|
||||
|
||||
return 0;
|
||||
|
||||
err_index:
|
||||
mlx4_bitmap_free(&priv->mr_table.mpt_bitmap, index);
|
||||
|
||||
err:
|
||||
kfree(mr);
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(mlx4_mr_alloc);
|
||||
|
Loading…
Reference in New Issue
Block a user