diff options
author | Roland Dreier <roland@purestorage.com> | 2011-11-03 17:48:25 -0700 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2011-11-03 17:48:25 -0700 |
commit | e4221314a593b00e035f70efbef52021f9a3a5fc (patch) | |
tree | 6ffdc286c4f414851c52086bfd7aa3a1e0e5e70d | |
parent | f470f8d4e702593ee1d0852871ad80373bce707b (diff) | |
download | linux-3.10-e4221314a593b00e035f70efbef52021f9a3a5fc.tar.gz linux-3.10-e4221314a593b00e035f70efbef52021f9a3a5fc.tar.bz2 linux-3.10-e4221314a593b00e035f70efbef52021f9a3a5fc.zip |
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 <eli@mellanox.co.il>.
Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_mr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c index ab876f928a1..ed9a989e501 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; |