From: Roland Dreier Date: Fri, 4 Nov 2011 00:48:25 +0000 (-0700) Subject: IB/mthca: Fix buddy->num_free allocation size X-Git-Tag: upstream/snapshot3+hdmi~8813^2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e4221314a593b00e035f70efbef52021f9a3a5fc;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git IB/mthca: Fix buddy->num_free allocation size The num_free field of mthca_buddy has a type of array of unsigned int while it was allocated as an array of pointers. On 64-bit platforms this allocates twice more than required. Fix this by allocating the correct size for the type. This is the same bug just fixed in mlx4 by Eli Cohen . Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c index ab876f9..ed9a989 100644 --- a/drivers/infiniband/hw/mthca/mthca_mr.c +++ b/drivers/infiniband/hw/mthca/mthca_mr.c @@ -146,7 +146,7 @@ static int mthca_buddy_init(struct mthca_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 = kcalloc((buddy->max_order + 1), sizeof *buddy->num_free, GFP_KERNEL); if (!buddy->bits || !buddy->num_free) goto err_out;