The num_free field of mlx4_buddy has a type of array of unsigned int while it
was allocated as an array of pointers. On 64 bit platforms it would allocate
twice more than required. Fix this by allocating the correct size for the type.

Signed-off-by: Eli Cohen <e...@mellanox.co.il>
---
 drivers/net/mlx4/mr.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/mlx4/mr.c b/drivers/net/mlx4/mr.c
index 9c188bd..1601942 100644
--- a/drivers/net/mlx4/mr.c
+++ b/drivers/net/mlx4/mr.c
@@ -139,7 +139,7 @@ static int mlx4_buddy_init(struct mlx4_buddy *buddy, int 
max_order)
 
        buddy->bits = kzalloc((buddy->max_order + 1) * sizeof (long *),
                              GFP_KERNEL);
-       buddy->num_free = kzalloc((buddy->max_order + 1) * sizeof (int *),
+       buddy->num_free = kzalloc((buddy->max_order + 1) * sizeof 
(*buddy->num_free),
                                  GFP_KERNEL);
        if (!buddy->bits || !buddy->num_free)
                goto err_out;
-- 
1.7.7.rc0.70.g82660

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to