diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2007-07-26 11:16:58 +0300 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-07-28 08:30:45 -0700 |
commit | 0172e2e14c3c1df10ec0fa31d9f41c1bc3a472f3 (patch) | |
tree | 3c9eb482826b1d3c40a428f4911bdd0202ac786d /drivers/net/mlx4/mr.c | |
parent | 4e8e6ee380c3858151165d7455b4954782f145a0 (diff) | |
download | op-kernel-dev-0172e2e14c3c1df10ec0fa31d9f41c1bc3a472f3.zip op-kernel-dev-0172e2e14c3c1df10ec0fa31d9f41c1bc3a472f3.tar.gz |
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>
Diffstat (limited to 'drivers/net/mlx4/mr.c')
-rw-r--r-- | drivers/net/mlx4/mr.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/net/mlx4/mr.c b/drivers/net/mlx4/mr.c index d0808fa..5b87183 100644 --- a/drivers/net/mlx4/mr.c +++ b/drivers/net/mlx4/mr.c @@ -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); + mlx4_bitmap_free(&priv->mr_table.mpt_bitmap, index); -err: - kfree(mr); return err; } EXPORT_SYMBOL_GPL(mlx4_mr_alloc); |