[PATCH 11/12] OMAP OPP: use kzalloc() rather than kmalloc()

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

 



Using kzalloc() avoids inadvertently forgetting to initialize some structure
member.
---
 arch/arm/plat-omap/opp.c |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
index f651912..8bdad43 100644
--- a/arch/arm/plat-omap/opp.c
+++ b/arch/arm/plat-omap/opp.c
@@ -178,8 +178,11 @@ struct omap_opp *opp_add(struct omap_opp *oppl,
 		opp++;
 	}
 
-	/* lets now reallocate memory */
-	oppr = kmalloc(sizeof(struct omap_opp) * (n + 2), GFP_KERNEL);
+	/*
+	 * Allocate enough entries to copy the original list, plus the new
+	 * OPP, plus the concluding terminator
+	 */
+	oppr = kzalloc(sizeof(struct omap_opp) * (n + 2), GFP_KERNEL);
 	if (!oppr) {
 		pr_err("%s: No memory for new opp array\n", __func__);
 		return ERR_PTR(-ENOMEM);
@@ -209,8 +212,8 @@ struct omap_opp *opp_add(struct omap_opp *oppl,
 		oppt->opp_id = i;
 		oppt++;
 	}
-	/* Put the terminator back on */
-	memcpy(oppt, opp, sizeof(struct omap_opp));
+
+	/* Terminator implicitly added by kzalloc() */
 
 	/* Free the old list */
 	kfree(oppl);
@@ -234,11 +237,16 @@ struct omap_opp __init *opp_init_list(const struct omap_opp_def *opp_defs)
 		t++;
 	}
 
-	oppl = kmalloc(sizeof(struct omap_opp) * (n + 1), GFP_KERNEL);
+	/*
+	 * Allocate enough entries to copy the original list, plus the
+	 * concluding terminator
+	 */
+	oppl = kzalloc(sizeof(struct omap_opp) * (n + 1), GFP_KERNEL);
 	if (!oppl) {
 		pr_err("%s: No memory for opp array\n", __func__);
 		return ERR_PTR(-ENOMEM);
 	}
+
 	opp = oppl;
 	while (n) {
 		omap_opp_populate(opp, opp_defs);
@@ -248,10 +256,9 @@ struct omap_opp __init *opp_init_list(const struct omap_opp_def *opp_defs)
 		opp_defs++;
 		i++;
 	}
-	/* Setup terminator - this is for our search algos */
-	opp->rate = 0;
-	opp->enabled = 0;
-	opp->u_volt = 0;
+
+	/* Terminator implicitly added by kzalloc() */
+
 	return oppl;
 }
 


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux