Skip to content

Commit

Permalink
Staging: rdma: hfi1: Use kcalloc instead of kzalloc to allocate array
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
  • Loading branch information
Shraddha Barke authored and gregkh committed Oct 13, 2015
1 parent 4ecc4a1 commit 314fcc0
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 11 deletions.
5 changes: 2 additions & 3 deletions drivers/staging/rdma/hfi1/diag.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
14 changes: 8 additions & 6 deletions drivers/staging/rdma/hfi1/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions drivers/staging/rdma/hfi1/user_sdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 314fcc0

Please sign in to comment.