Skip to contentSkip to conversation

clk: zynqmp: Fix memory allocation in zynqmp_clk_setup

PATCH Applied Gustavo A. R. Silva 3 participants 3 messages Dec 24, 2018 – Jan 9, 2019

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 clk: zynqmp: Fix memory allocation in zynqmp_clk_setup

Fix memory allocation and use struct_size() in kzalloc().

Fixes 3fde0e16d016 ("drivers: clk: Add ZynqMP clock driver")
---
 drivers/clk/zynqmp/clkc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/clk/zynqmp/clkc.c +2 -2
index f65cc0ff76ab..b0908ec62f73 100644
@@ -669,8 +669,8 @@ static int zynqmp_clk_setup(struct device_node *np)
 	if (ret)
 		return ret;
 
-	zynqmp_data = kzalloc(sizeof(*zynqmp_data) + sizeof(*zynqmp_data) *
-						clock_max_idx, GFP_KERNEL);
+	zynqmp_data = kzalloc(struct_size(zynqmp_data, hws, clock_max_idx),
+			      GFP_KERNEL);
 	if (!zynqmp_data)
 		return -ENOMEM;
 
Signature · 1 line
2.17.0
Acked-by on v1 1/1
#1 lore raw
Quoted 15 lines · Gustavo A. R. Silva

Fix memory allocation and use struct_size() in kzalloc().

Fixes 3fde0e16d016 ("drivers: clk: Add ZynqMP clock driver")
---
 drivers/clk/zynqmp/clkc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/clk/zynqmp/clkc.c +0 -0
index f65cc0ff76ab..b0908ec62f73 100644

drivers/clk/zynqmp/clkc.c static int zynqmp_clk_setup(struct device_node *np) · line 676

Quoted 10 lines
drivers/clk/zynqmp/clkc.c +2 -2
@@ -669,8 +669,8 @@ static int zynqmp_clk_setup(struct device_node *np)
 	if (ret)
 		return ret;
 
-	zynqmp_data = kzalloc(sizeof(*zynqmp_data) + sizeof(*zynqmp_data) *
-						clock_max_idx, GFP_KERNEL);
+	zynqmp_data = kzalloc(struct_size(zynqmp_data, hws, clock_max_idx),
+			      GFP_KERNEL);
 	if (!zynqmp_data)
 		return -ENOMEM;
 

Looks good. Description could be maybe more verbose that you are fixing issue that it should be sizeof(struct clk_hw) instead of sizeof(struct clk_hw_onecell_data)
Otherwise

Thanks,
Michal

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel