staging: unisys: visorutil: Use kzalloc instead of kmalloc with memset

Author: Iulia Manda <iulia.manda21@gmail.com>

Fix coccinelle warnings of better allocation by using kzalloc.
In these cases, kzalloc is preferred, as kmalloc may fail if it does not find
contiguous memory.

Signed-off-by: Iulia Manda 
Acked-by: Luis R. Rodriguez 
Signed-off-by: Peter P Waskiewicz Jr 
---
 drivers/staging/unisys/visorutil/procobjecttree.c | 24 ++++++++---------------
 1 file changed, 8 insertions(+), 16 deletions(-)
 
diff --git a/drivers/staging/unisys/visorutil/procobjecttree.c b/drivers/staging/unisys/visorutil/procobjecttree.c
index e4d734e..9c2dd0c 100644
--- a/drivers/staging/unisys/visorutil/procobjecttree.c
+++ b/drivers/staging/unisys/visorutil/procobjecttree.c
@@ -140,10 +140,9 @@ MYPROCTYPE *visor_proc_CreateType(struct proc_dir_entry *procDirRoot,
 		FAIL("procDirRoot cannot be NULL!", 0);
 	if (name == NULL || name[0] == NULL)
 		FAIL("name must contain at least 1 node name!", 0);
-	type = kmalloc(sizeof(MYPROCTYPE), GFP_KERNEL|__GFP_NORETRY);
+	type = kzalloc(sizeof(MYPROCTYPE), GFP_KERNEL | __GFP_NORETRY);
 	if (type == NULL)
 		FAIL("out of memory", 0);
-	memset(type, 0, sizeof(MYPROCTYPE));
 	type->name = name;
 	type->propertyNames = propertyNames;
 	type->nProperties = 0;
@@ -155,13 +154,11 @@ MYPROCTYPE *visor_proc_CreateType(struct proc_dir_entry *procDirRoot,
 			type->nProperties++;
 	while (type->name[type->nNames] != NULL)
 		type->nNames++;
-	type->procDirs = kmalloc((type->nNames+1)*
+	type->procDirs = kzalloc((type->nNames + 1) *
 				 sizeof(struct proc_dir_entry *),
-				 GFP_KERNEL|__GFP_NORETRY);
+				 GFP_KERNEL | __GFP_NORETRY);
 	if (type->procDirs == NULL)
 		FAIL("out of memory", 0);
-	memset(type->procDirs, 0, (type->nNames + 1) *
-	       sizeof(struct proc_dir_entry *));
 	parent = procDirRoot;
 	for (i = 0; i < type->nNames; i++) {
 		type->procDirs[i] = createProcDir(type->name[i], parent);
@@ -218,10 +215,9 @@ MYPROCOBJECT *visor_proc_CreateObject(MYPROCTYPE *type,
 
 	if (type == NULL)
 		FAIL("type cannot be NULL", 0);
-	obj = kmalloc(sizeof(MYPROCOBJECT), GFP_KERNEL | __GFP_NORETRY);
+	obj = kzalloc(sizeof(MYPROCOBJECT), GFP_KERNEL | __GFP_NORETRY);
 	if (obj == NULL)
 		FAIL("out of memory", 0);
-	memset(obj, 0, sizeof(MYPROCOBJECT));
 	obj->type = type;
 	obj->context = context;
 	if (name == NULL) {
@@ -240,19 +236,15 @@ MYPROCOBJECT *visor_proc_CreateObject(MYPROCTYPE *type,
 			RETPTR(NULL);
 	}
 	obj->procDirPropertyContexts =
-		kmalloc((type->nProperties+1)*sizeof(PROCDIRENTRYCONTEXT),
-			GFP_KERNEL|__GFP_NORETRY);
+		kzalloc((type->nProperties + 1) * sizeof(PROCDIRENTRYCONTEXT),
+			GFP_KERNEL | __GFP_NORETRY);
 	if (obj->procDirPropertyContexts == NULL)
 		FAIL("out of memory", 0);
-	memset(obj->procDirPropertyContexts, 0,
-	       (type->nProperties+1)*sizeof(PROCDIRENTRYCONTEXT));
 	obj->procDirProperties =
-		kmalloc((type->nProperties+1) * sizeof(struct proc_dir_entry *),
-			GFP_KERNEL|__GFP_NORETRY);
+		kzalloc((type->nProperties + 1) * sizeof(struct proc_dir_entry *),
+			GFP_KERNEL | __GFP_NORETRY);
 	if (obj->procDirProperties == NULL)
 		FAIL("out of memory", 0);
-	memset(obj->procDirProperties, 0,
-	       (type->nProperties+1) * sizeof(struct proc_dir_entry *));
 	for (i = 0; i < type->nProperties; i++) {
 		obj->procDirPropertyContexts[i].procObject = obj;
 		obj->procDirPropertyContexts[i].propertyIndex = i;
BtrLinux
Résumé de la politique de confidentialité

Ce site utilise des cookies afin que nous puissions vous fournir la meilleure expérience utilisateur possible. Les informations sur les cookies sont stockées dans votre navigateur et remplissent des fonctions telles que vous reconnaître lorsque vous revenez sur notre site Web et aider notre équipe à comprendre les sections du site que vous trouvez les plus intéressantes et utiles.