Commit c1248638 authored by Heiko Carstens's avatar Heiko Carstens
Browse files

s390/zcrypt: Use kvcalloc() instead of kvmalloc_array()



sparse warns about a large memset() call within
zcrypt_device_status_mask_ext():

drivers/s390/crypto/zcrypt_api.c:1303:15: warning: memset with byte count of 262144

Get rid of this warning by making sure that all callers of this function
allocate memory with __GFP_ZERO, which zeroes memory already at allocation
time, which again allows to remove the memset() call.

Reviewed-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent d890e6af
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -1300,9 +1300,6 @@ void zcrypt_device_status_mask_ext(struct zcrypt_device_status_ext *devstatus)
	struct zcrypt_device_status_ext *stat;
	int card, queue;

	memset(devstatus, 0, MAX_ZDEV_ENTRIES_EXT
	       * sizeof(struct zcrypt_device_status_ext));

	spin_lock(&zcrypt_list_lock);
	for_each_zcrypt_card(zc) {
		for_each_zcrypt_queue(zq, zc) {
@@ -1607,7 +1604,7 @@ static long zcrypt_unlocked_ioctl(struct file *filp, unsigned int cmd,
		size_t total_size = MAX_ZDEV_ENTRIES_EXT
			* sizeof(struct zcrypt_device_status_ext);

		device_status = kvmalloc_array(MAX_ZDEV_ENTRIES_EXT,
		device_status = kvcalloc(MAX_ZDEV_ENTRIES_EXT,
					 sizeof(struct zcrypt_device_status_ext),
					 GFP_KERNEL);
		if (!device_status)
+6 −6
Original line number Diff line number Diff line
@@ -1762,7 +1762,7 @@ static int findcard(u64 mkvp, u16 *pcardnr, u16 *pdomain,
		return -EINVAL;

	/* fetch status of all crypto cards */
	device_status = kvmalloc_array(MAX_ZDEV_ENTRIES_EXT,
	device_status = kvcalloc(MAX_ZDEV_ENTRIES_EXT,
				 sizeof(struct zcrypt_device_status_ext),
				 GFP_KERNEL);
	if (!device_status)
@@ -1878,7 +1878,7 @@ int cca_findcard2(u32 **apqns, u32 *nr_apqns, u16 cardnr, u16 domain,
	struct cca_info ci;

	/* fetch status of all crypto cards */
	device_status = kvmalloc_array(MAX_ZDEV_ENTRIES_EXT,
	device_status = kvcalloc(MAX_ZDEV_ENTRIES_EXT,
				 sizeof(struct zcrypt_device_status_ext),
				 GFP_KERNEL);
	if (!device_status)
+3 −3
Original line number Diff line number Diff line
@@ -1588,7 +1588,7 @@ int ep11_findcard2(u32 **apqns, u32 *nr_apqns, u16 cardnr, u16 domain,
	struct ep11_card_info eci;

	/* fetch status of all crypto cards */
	device_status = kvmalloc_array(MAX_ZDEV_ENTRIES_EXT,
	device_status = kvcalloc(MAX_ZDEV_ENTRIES_EXT,
				 sizeof(struct zcrypt_device_status_ext),
				 GFP_KERNEL);
	if (!device_status)