]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
mlx4_core: Fix buddy->num_free allocation size
authorEli Cohen <eli@dev.mellanox.co.il>
Wed, 21 Sep 2011 13:31:17 +0000 (16:31 +0300)
committerRoland Dreier <roland@purestorage.com>
Wed, 21 Sep 2011 18:09:58 +0000 (11:09 -0700)
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
this allocates twice more than required.  Fix this by allocating the
correct size for the type.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
[ Convert to kcalloc().  - Roland ]

Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/net/mlx4/mr.c

index 9c188bdd7f4f2c5a6a3a124749d513c4d6b77958..ab639cfef78ea8005f39beccd6a8f71a92ed96c9 100644 (file)
@@ -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 = kcalloc((buddy->max_order + 1), sizeof *buddy->num_free,
                                  GFP_KERNEL);
        if (!buddy->bits || !buddy->num_free)
                goto err_out;