[Skiboot] [PATCH 8/8] slw: don't be tricky with pointer math

Stewart Smith stewart at linux.vnet.ibm.com
Tue Nov 17 15:39:07 AEDT 2015


Mainly because this trips up some static analysis on resource usage
and instead of having someone go back and prove it, add an assert
and keep around a (no doubt optimized out) variable.

Signed-off-by: Stewart Smith <stewart at linux.vnet.ibm.com>
---
 hw/slw.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/hw/slw.c b/hw/slw.c
index e1b43685d715..bb47971dc92d 100644
--- a/hw/slw.c
+++ b/hw/slw.c
@@ -518,7 +518,7 @@ void add_cpu_idle_state_properties(void)
 	u8 i;
 
 	/* Buffers to hold idle state properties */
-	char *name_buf;
+	char *name_buf, *alloced_name_buf;
 	u32 *latency_ns_buf;
 	u32 *residency_ns_buf;
 	u32 *flags_buf;
@@ -595,7 +595,8 @@ void add_cpu_idle_state_properties(void)
 	 */
 
 	/* Allocate memory to idle state property buffers. */
-	name_buf	= (char *) malloc(nr_states * sizeof(char) * MAX_NAME_LEN);
+	alloced_name_buf= (char *) malloc(nr_states * sizeof(char) * MAX_NAME_LEN);
+	name_buf = alloced_name_buf;
 	latency_ns_buf	=  (u32 *) malloc(nr_states * sizeof(u32));
 	residency_ns_buf=  (u32 *) malloc(nr_states * sizeof(u32));
 	flags_buf	=  (u32 *) malloc(nr_states * sizeof(u32));
@@ -661,7 +662,8 @@ void add_cpu_idle_state_properties(void)
 	dt_add_property(power_mgt, "ibm,cpu-idle-state-pmicr-mask",
 			pmicr_mask_buf, num_supported_idle_states * sizeof(u64));
 
-	free(name_buf);
+	assert(alloced_name_buf == name_buf);
+	free(alloced_name_buf);
 	free(latency_ns_buf);
 	free(residency_ns_buf);
 	free(flags_buf);
-- 
2.1.4



More information about the Skiboot mailing list