Staging: rdma: hfi1: Use kcalloc instead of kzalloc to allocate array
authorShraddha Barke <shraddha.6596@gmail.com>
Fri, 9 Oct 2015 15:33:26 +0000 (21:03 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Oct 2015 03:35:21 +0000 (20:35 -0700)
The advantage of kcalloc is, that will prevent integer overflows which
could result from the multiplication of number of elements and size and
it is also a bit nicer to read.

Signed-off-by: Shraddha Barke <shraddha.6596@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rdma/hfi1/diag.c
drivers/staging/rdma/hfi1/init.c
drivers/staging/rdma/hfi1/user_sdma.c

index 3e8d5ac4c626901e52b66aa0f3ba27e1c603bc79..3d025d7c5a7377fd5ecd320efb7f49ea86eeb372 100644 (file)
@@ -1159,9 +1159,8 @@ static long hfi1_ioctl(struct file *fp, unsigned int cmd, unsigned long arg)
                                   filter_cmd.opcode, filter_cmd.length,
                                   filter_cmd.value_ptr);
 
-                       filter_value = kzalloc(
-                                               filter_cmd.length * sizeof(u8),
-                                               GFP_KERNEL);
+                       filter_value = kcalloc(filter_cmd.length, sizeof(u8),
+                                              GFP_KERNEL);
                        if (!filter_value) {
                                pr_alert("Not enough memory\n");
                                ret = -ENOMEM;
index a877eda8c13c72ac5fa67c55bf1bd1eddf50139c..84e6213a73c1f5b08203939f7d69387f3a9f8e3e 100644 (file)
@@ -293,12 +293,14 @@ struct hfi1_ctxtdata *hfi1_create_ctxtdata(struct hfi1_pportdata *ppd, u32 ctxt)
                 * The resulting value will be rounded down to the closest
                 * multiple of dd->rcv_entries.group_size.
                 */
-               rcd->egrbufs.buffers = kzalloc(sizeof(*rcd->egrbufs.buffers) *
-                                              rcd->egrbufs.count, GFP_KERNEL);
+               rcd->egrbufs.buffers = kcalloc(rcd->egrbufs.count,
+                                              sizeof(*rcd->egrbufs.buffers),
+                                              GFP_KERNEL);
                if (!rcd->egrbufs.buffers)
                        goto bail;
-               rcd->egrbufs.rcvtids = kzalloc(sizeof(*rcd->egrbufs.rcvtids) *
-                                              rcd->egrbufs.count, GFP_KERNEL);
+               rcd->egrbufs.rcvtids = kcalloc(rcd->egrbufs.count,
+                                              sizeof(*rcd->egrbufs.rcvtids),
+                                              GFP_KERNEL);
                if (!rcd->egrbufs.rcvtids)
                        goto bail;
                rcd->egrbufs.size = eager_buffer_size;
@@ -1050,8 +1052,8 @@ struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev, size_t extra)
        if (!hfi1_cpulist_count) {
                u32 count = num_online_cpus();
 
-               hfi1_cpulist = kzalloc(BITS_TO_LONGS(count) *
-                                     sizeof(long), GFP_KERNEL);
+               hfi1_cpulist = kcalloc(BITS_TO_LONGS(count), sizeof(long),
+                                      GFP_KERNEL);
                if (hfi1_cpulist)
                        hfi1_cpulist_count = count;
                else
index 66202625a58c602f9bcf35affb9252269411a3f7..368878f8e6739c24fcb391a6122af65aa1a52317 100644 (file)
@@ -1050,8 +1050,8 @@ static int pin_vector_pages(struct user_sdma_request *req,
        unsigned pinned;
 
        iovec->npages = num_user_pages(&iovec->iov);
-       iovec->pages = kzalloc(sizeof(*iovec->pages) *
-                              iovec->npages, GFP_KERNEL);
+       iovec->pages = kcalloc(iovec->npages, sizeof(*iovec->pages),
+                              GFP_KERNEL);
        if (!iovec->pages) {
                SDMA_DBG(req, "Failed page array alloc");
                ret = -ENOMEM;