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