Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0172e2e1 authored by Jack Morgenstein's avatar Jack Morgenstein Committed by Roland Dreier
Browse files

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: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent 4e8e6ee3
Loading
Loading
Loading
Loading
+3 −12
Original line number Diff line number Diff line
@@ -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;

	return 0;

err_index:
		mlx4_bitmap_free(&priv->mr_table.mpt_bitmap, index);

err:
	kfree(mr);
	return err;
}
EXPORT_SYMBOL_GPL(mlx4_mr_alloc);