[PATCH -next] platform/x86: hp-bioscfg: Use kmemdup() to replace kmalloc + memcpy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



There are some warnings reported by coccinelle:

./drivers/platform/x86/hp/hp-bioscfg/spmobj-attributes.c:317:35-42:
		WARNING opportunity for kmemdup
./drivers/platform/x86/hp/hp-bioscfg/spmobj-attributes.c:270:40-47:
		WARNING opportunity for kmemdup
./drivers/platform/x86/hp/hp-bioscfg/spmobj-attributes.c:233:36-43:
		WARNING opportunity for kmemdup

Use kmemdup rather than duplicating its implementation.

Signed-off-by: Li Zetao <lizetao1@xxxxxxxxxx>
---
 .../platform/x86/hp/hp-bioscfg/spmobj-attributes.c    | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/platform/x86/hp/hp-bioscfg/spmobj-attributes.c b/drivers/platform/x86/hp/hp-bioscfg/spmobj-attributes.c
index 02291e32684f..86f90238750c 100644
--- a/drivers/platform/x86/hp/hp-bioscfg/spmobj-attributes.c
+++ b/drivers/platform/x86/hp/hp-bioscfg/spmobj-attributes.c
@@ -230,12 +230,10 @@ static ssize_t sk_store(struct kobject *kobj,
 		length--;
 
 	/* allocate space and copy current signing key */
-	bioscfg_drv.spm_data.signing_key = kmalloc(length, GFP_KERNEL);
+	bioscfg_drv.spm_data.signing_key = kmemdup(buf, length, GFP_KERNEL);
 	if (!bioscfg_drv.spm_data.signing_key)
 		return -ENOMEM;
 
-	memcpy(bioscfg_drv.spm_data.signing_key, buf, length);
-
 	/* submit signing key payload */
 	ret = hp_wmi_perform_query(HPWMI_SECUREPLATFORM_SET_SK,
 				   HPWMI_SECUREPLATFORM,
@@ -267,14 +265,12 @@ static ssize_t kek_store(struct kobject *kobj,
 		length--;
 
 	/* allocate space and copy current signing key */
-	bioscfg_drv.spm_data.endorsement_key = kmalloc(length, GFP_KERNEL);
+	bioscfg_drv.spm_data.endorsement_key = kmemdup(buf, length, GFP_KERNEL);
 	if (!bioscfg_drv.spm_data.endorsement_key) {
 		ret = -ENOMEM;
 		goto exit_kek;
 	}
 
-	memcpy(bioscfg_drv.spm_data.endorsement_key, buf, length);
-
 	ret = hp_wmi_perform_query(HPWMI_SECUREPLATFORM_SET_KEK,
 				   HPWMI_SECUREPLATFORM,
 				   (void *)bioscfg_drv.spm_data.endorsement_key,
@@ -314,13 +310,12 @@ static ssize_t auth_token_store(struct kobject *kobj,
 		length--;
 
 	/* allocate space and copy current auth token */
-	bioscfg_drv.spm_data.auth_token = kmalloc(length, GFP_KERNEL);
+	bioscfg_drv.spm_data.auth_token = kmemdup(buf, length, GFP_KERNEL);
 	if (!bioscfg_drv.spm_data.auth_token) {
 		ret = -ENOMEM;
 		goto exit_token;
 	}
 
-	memcpy(bioscfg_drv.spm_data.auth_token, buf, length);
 	return count;
 
 exit_token:
-- 
2.34.1




[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux