Commit 314fcc0d authored by Shraddha Barke's avatar Shraddha Barke Committed by Greg Kroah-Hartman
Browse files

Staging: rdma: hfi1: Use kcalloc instead of kzalloc to allocate array



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: default avatarShraddha Barke <shraddha.6596@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4ecc4a18
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1159,8 +1159,7 @@ 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),
			filter_value = kcalloc(filter_cmd.length, sizeof(u8),
					       GFP_KERNEL);
			if (!filter_value) {
				pr_alert("Not enough memory\n");
+8 −6
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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;