2014-11-20 08:14:03

by Al Viro

[permalink] [raw]
Subject: mlx5: don't duplicate kvfree()

Signed-off-by: Al Viro <[email protected]>
---
drivers/infiniband/hw/mlx5/cq.c | 8 ++++----
drivers/infiniband/hw/mlx5/mr.c | 4 ++--
drivers/infiniband/hw/mlx5/qp.c | 8 ++++----
drivers/infiniband/hw/mlx5/srq.c | 6 +++---
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 4 ++--
drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c | 4 ++--
drivers/net/ethernet/mellanox/mlx5/core/port.c | 4 ++--
include/linux/mlx5/driver.h | 8 --------
9 files changed, 21 insertions(+), 35 deletions(-)

diff --git a/drivers/infiniband/hw/mlx5/cq.c b/drivers/infiniband/hw/mlx5/cq.c
index 10cfce5..c463e7b 100644
--- a/drivers/infiniband/hw/mlx5/cq.c
+++ b/drivers/infiniband/hw/mlx5/cq.c
@@ -805,14 +805,14 @@ struct ib_cq *mlx5_ib_create_cq(struct ib_device *ibdev, int entries,
}


- mlx5_vfree(cqb);
+ kvfree(cqb);
return &cq->ibcq;

err_cmd:
mlx5_core_destroy_cq(dev->mdev, &cq->mcq);

err_cqb:
- mlx5_vfree(cqb);
+ kvfree(cqb);
if (context)
destroy_cq_user(cq, context);
else
@@ -1159,11 +1159,11 @@ int mlx5_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
}
mutex_unlock(&cq->resize_mutex);

- mlx5_vfree(in);
+ kvfree(in);
return 0;

ex_alloc:
- mlx5_vfree(in);
+ kvfree(in);

ex_resize:
if (udata)
diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/mr.c
index 8ee7cb4..4c89b64 100644
--- a/drivers/infiniband/hw/mlx5/mr.c
+++ b/drivers/infiniband/hw/mlx5/mr.c
@@ -853,14 +853,14 @@ static struct mlx5_ib_mr *reg_create(struct ib_pd *pd, u64 virt_addr,
goto err_2;
}
mr->umem = umem;
- mlx5_vfree(in);
+ kvfree(in);

mlx5_ib_dbg(dev, "mkey = 0x%x\n", mr->mmr.key);

return mr;

err_2:
- mlx5_vfree(in);
+ kvfree(in);

err_1:
kfree(mr);
diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
index e261a53..0e2ef9f 100644
--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -647,7 +647,7 @@ err_unmap:
mlx5_ib_db_unmap_user(context, &qp->db);

err_free:
- mlx5_vfree(*in);
+ kvfree(*in);

err_umem:
if (qp->umem)
@@ -761,7 +761,7 @@ err_wrid:
kfree(qp->rq.wrid);

err_free:
- mlx5_vfree(*in);
+ kvfree(*in);

err_buf:
mlx5_buf_free(dev->mdev, &qp->buf);
@@ -971,7 +971,7 @@ static int create_qp_common(struct mlx5_ib_dev *dev, struct ib_pd *pd,
goto err_create;
}

- mlx5_vfree(in);
+ kvfree(in);
/* Hardware wants QPN written in big-endian order (after
* shifting) for send doorbell. Precompute this value to save
* a little bit when posting sends.
@@ -988,7 +988,7 @@ err_create:
else if (qp->create_type == MLX5_QP_KERNEL)
destroy_qp_kernel(dev, qp);

- mlx5_vfree(in);
+ kvfree(in);
return err;
}

diff --git a/drivers/infiniband/hw/mlx5/srq.c b/drivers/infiniband/hw/mlx5/srq.c
index 97cc1ba..41fec66 100644
--- a/drivers/infiniband/hw/mlx5/srq.c
+++ b/drivers/infiniband/hw/mlx5/srq.c
@@ -141,7 +141,7 @@ static int create_srq_user(struct ib_pd *pd, struct mlx5_ib_srq *srq,
return 0;

err_in:
- mlx5_vfree(*in);
+ kvfree(*in);

err_umem:
ib_umem_release(srq->umem);
@@ -209,7 +209,7 @@ static int create_srq_kernel(struct mlx5_ib_dev *dev, struct mlx5_ib_srq *srq,
return 0;

err_in:
- mlx5_vfree(*in);
+ kvfree(*in);

err_buf:
mlx5_buf_free(dev->mdev, &srq->buf);
@@ -306,7 +306,7 @@ struct ib_srq *mlx5_ib_create_srq(struct ib_pd *pd,
in->ctx.pd = cpu_to_be32(to_mpd(pd)->pdn);
in->ctx.db_record = cpu_to_be64(srq->db.dma);
err = mlx5_core_create_srq(dev->mdev, &srq->msrq, in, inlen);
- mlx5_vfree(in);
+ kvfree(in);
if (err) {
mlx5_ib_dbg(dev, "create SRQ failed, err %d\n", err);
goto err_usr_kern_srq;
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/ethernet/mellanox/mlx5/core/eq.c
index a278238..eb3aa15 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c
@@ -391,7 +391,7 @@ int mlx5_create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq *eq, u8 vecidx,
*/
eq_update_ci(eq, 1);

- mlx5_vfree(in);
+ kvfree(in);
return 0;

err_irq:
@@ -401,7 +401,7 @@ err_eq:
mlx5_cmd_destroy_eq(dev, eq->eqn);

err_in:
- mlx5_vfree(in);
+ kvfree(in);

err_buf:
mlx5_buf_free(dev, &eq->buf);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
index d476918..4fdaae9 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c
@@ -349,7 +349,7 @@ out_4k:
for (i--; i >= 0; i--)
free_4k(dev, be64_to_cpu(in->pas[i]));
out_free:
- mlx5_vfree(in);
+ kvfree(in);
return err;
}

@@ -400,7 +400,7 @@ static int reclaim_pages(struct mlx5_core_dev *dev, u32 func_id, int npages,
}

out_free:
- mlx5_vfree(out);
+ kvfree(out);
return err;
}

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/port.c b/drivers/net/ethernet/mellanox/mlx5/core/port.c
index 3139658..72c2d00 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/port.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/port.c
@@ -68,9 +68,9 @@ int mlx5_core_access_reg(struct mlx5_core_dev *dev, void *data_in,
memcpy(data_out, out->data, size_out);

ex2:
- mlx5_vfree(out);
+ kvfree(out);
ex1:
- mlx5_vfree(in);
+ kvfree(in);
return err;
}
EXPORT_SYMBOL_GPL(mlx5_core_access_reg);
diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h
index 246310d..b1bf415 100644
--- a/include/linux/mlx5/driver.h
+++ b/include/linux/mlx5/driver.h
@@ -633,14 +633,6 @@ static inline void *mlx5_vzalloc(unsigned long size)
return rtn;
}

-static inline void mlx5_vfree(const void *addr)
-{
- if (addr && is_vmalloc_addr(addr))
- vfree(addr);
- else
- kfree(addr);
-}
-
static inline u32 mlx5_base_mkey(const u32 key)
{
return key & 0xffffff00u;
--
1.7.10.4


2014-11-20 08:17:29

by Al Viro

[permalink] [raw]
Subject: Re: mlx5: don't duplicate kvfree()

On Thu, Nov 20, 2014 at 08:13:57AM +0000, Al Viro wrote:
> 9 files changed, 21 insertions(+), 35 deletions(-)

grr... 8 files changed, actually - that was from the diff that included mlx4
bits. Patch split correctly and sent in two pieces, summary left as is ;-/
Sorry about the confusion it might cause...

2014-11-20 08:41:37

by Eli Cohen

[permalink] [raw]

2014-11-20 17:16:57

by Or Gerlitz

[permalink] [raw]
Subject: Re: mlx5: don't duplicate kvfree()

On 11/20/2014 10:17 AM, Al Viro wrote:
> On Thu, Nov 20, 2014 at 08:13:57AM +0000, Al Viro wrote:
>> > 9 files changed, 21 insertions(+), 35 deletions(-)
> grr... 8 files changed, actually - that was from the diff that included mlx4
> bits. Patch split correctly and sent in two pieces, summary left as is ;-/
> Sorry about the confusion it might cause...
Al,

I think the best way to proceed here is to come up with mlx4 and mlx5
patches and get both of them in through netdev / net-nexttree, don't
worry about each of these drivers have a part which is also under
drivers/infiniband/hw -- it doesn't justify splitting in this case

Or.

2014-11-20 18:51:13

by Al Viro

[permalink] [raw]
Subject: Re: mlx5: don't duplicate kvfree()

On Thu, Nov 20, 2014 at 07:09:31PM +0200, Or Gerlitz wrote:
> On 11/20/2014 10:17 AM, Al Viro wrote:
> >On Thu, Nov 20, 2014 at 08:13:57AM +0000, Al Viro wrote:
> >>> 9 files changed, 21 insertions(+), 35 deletions(-)
> >grr... 8 files changed, actually - that was from the diff that included mlx4
> >bits. Patch split correctly and sent in two pieces, summary left as is ;-/
> >Sorry about the confusion it might cause...
> Al,
>
> I think the best way to proceed here is to come up with mlx4 and
> mlx5 patches and get both of them in through netdev / net-nexttree,
> don't worry about each of these drivers have a part which is also
> under drivers/infiniband/hw -- it doesn't justify splitting in this
> case

Both had been sent to netdev today (and ACKed by respective drivers'
maintainers). I'd certainly prefer not to put them through vfs.git,
but beyond that I really don't care which tree do those go into...

2014-11-21 19:58:32

by David Miller

[permalink] [raw]
Subject: Re: mlx5: don't duplicate kvfree()

From: Al Viro <[email protected]>
Date: Thu, 20 Nov 2014 08:13:57 +0000

> Signed-off-by: Al Viro <[email protected]>

Applied.