IB/hns: Use kcalloc() in hns_roce_buddy_init()
authorMarkus Elfring <elfring@users.sourceforge.net>
Thu, 16 Feb 2017 08:30:55 +0000 (09:30 +0100)
committerDoug Ledford <dledford@redhat.com>
Thu, 20 Apr 2017 20:31:49 +0000 (16:31 -0400)
* Multiplications for the size determination of memory allocations
  indicated that array data structures should be processed.
  Thus use the corresponding function "kcalloc".

  This issue was detected by using the Coccinelle software.

* Replace the specification of data types by pointer dereferences
  to make the corresponding size determinations a bit safer according to
  the Linux coding style convention.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/hns/hns_roce_mr.c

index 4139abee3b54042b5fe301f78fdfefb8ab101e38..b48693510727105d8bfb42585906e7a616ef0831 100644 (file)
@@ -127,11 +127,12 @@ static int hns_roce_buddy_init(struct hns_roce_buddy *buddy, int max_order)
 
        buddy->max_order = max_order;
        spin_lock_init(&buddy->lock);
-
-       buddy->bits = kzalloc((buddy->max_order + 1) * sizeof(long *),
-                              GFP_KERNEL);
-       buddy->num_free = kzalloc((buddy->max_order + 1) * sizeof(int *),
-                                  GFP_KERNEL);
+       buddy->bits = kcalloc(buddy->max_order + 1,
+                             sizeof(*buddy->bits),
+                             GFP_KERNEL);
+       buddy->num_free = kcalloc(buddy->max_order + 1,
+                                 sizeof(*buddy->num_free),
+                                 GFP_KERNEL);
        if (!buddy->bits || !buddy->num_free)
                goto err_out;