diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2007-07-26 10:16:58 +0200 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-07-28 17:30:45 +0200 |
commit | 0172e2e14c3c1df10ec0fa31d9f41c1bc3a472f3 (patch) | |
tree | 3c9eb482826b1d3c40a428f4911bdd0202ac786d /drivers/net/mlx4/mr.c | |
parent | RDMA/amso1100: Initialize the wait_queue_head_t in the c2_qp structure (diff) | |
download | linux-0172e2e14c3c1df10ec0fa31d9f41c1bc3a472f3.tar.xz linux-0172e2e14c3c1df10ec0fa31d9f41c1bc3a472f3.zip |
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 d0808fa3ec82..5b87183e62ce 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); |