clk: imx: imx7ulp: use struct_size() in kzalloc()
Subsystems (3)
PATCH 1/1 clk: imx: imx7ulp: use struct_size() in kzalloc()
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo {
int stuff;
void *entry[];
};instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);
Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper:
instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL);
This issue was detected with the help of Coccinelle.
--- drivers/clk/imx/clk-imx7ulp.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
drivers/clk/imx/clk-imx7ulp.c +8 -8
@@ -48,8 +48,8 @@ static void __init imx7ulp_clk_scg1_init(struct device_node *np)struct clk_hw **clks;void __iomem *base; - clk_data =kzalloc (sizeof (*clk_data) +sizeof (*clk_data->hws) * -IMX7ULP_CLK_SCG1_END ,GFP_KERNEL ); + clk_data =kzalloc (struct_size (clk_data, hws,IMX7ULP_CLK_SCG1_END ), +GFP_KERNEL );if (!clk_data)return ;
@@ -136,8 +136,8 @@ static void __init imx7ulp_clk_pcc2_init(struct device_node *np)struct clk_hw **clks;void __iomem *base; - clk_data =kzalloc (sizeof (*clk_data) +sizeof (*clk_data->hws) * -IMX7ULP_CLK_PCC2_END ,GFP_KERNEL ); + clk_data =kzalloc (struct_size (clk_data, hws,IMX7ULP_CLK_PCC2_END ), +GFP_KERNEL );if (!clk_data)return ;
@@ -183,8 +183,8 @@ static void __init imx7ulp_clk_pcc3_init(struct device_node *np)struct clk_hw **clks;void __iomem *base; - clk_data =kzalloc (sizeof (*clk_data) +sizeof (*clk_data->hws) * -IMX7ULP_CLK_PCC3_END ,GFP_KERNEL ); + clk_data =kzalloc (struct_size (clk_data, hws,IMX7ULP_CLK_PCC3_END ), +GFP_KERNEL );if (!clk_data)return ;
@@ -228,8 +228,8 @@ static void __init imx7ulp_clk_smc1_init(struct device_node *np)struct clk_hw **clks;void __iomem *base; - clk_data =kzalloc (sizeof (*clk_data) +sizeof (*clk_data->hws) * -IMX7ULP_CLK_SMC1_END ,GFP_KERNEL ); + clk_data =kzalloc (struct_size (clk_data, hws,IMX7ULP_CLK_SMC1_END ), +GFP_KERNEL );if (!clk_data)return ;
Signature · 1 line
2.20.1
Quoted 15 lines
-----Original Message-----
From: Gustavo A. R. Silva [mailto:[email protected]]
Sent: Monday, December 24, 2018 2:40 PMOne of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; void *entry[]; };instance =
kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);
Quoted 8 lines
Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:instance =
kzalloc(struct_size(instance, entry, count), GFP_KERNEL);This issue was detected with the help of Coccinelle.
Signed-off-by Gustavo A. R. Silva <[email protected]>
Regards
Dong Aisheng
Hi,
Friendly ping:
Who can take this?
Thanks
--
Gustavo
Quoted 72 lines · Gustavo A. R. Silva
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; void *entry[]; };instance =
kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:instance =
kzalloc(struct_size(instance, entry, count), GFP_KERNEL);This issue was detected with the help of Coccinelle.
Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/clk/imx/clk-imx7ulp.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)drivers/clk/imx/clk-imx7ulp.c +8
-8@@ -48,8 +48,8 @@ static void __init imx7ulp_clk_scg1_init(struct device_node *np)struct clk_hw **clks;void __iomem *base; - clk_data =kzalloc (sizeof (*clk_data) +sizeof (*clk_data->hws) * -IMX7ULP_CLK_SCG1_END ,GFP_KERNEL ); + clk_data =kzalloc (struct_size (clk_data, hws,IMX7ULP_CLK_SCG1_END ), +GFP_KERNEL );if (!clk_data)return ;@@ -136,8 +136,8 @@ static void __init imx7ulp_clk_pcc2_init(struct device_node *np)struct clk_hw **clks;void __iomem *base; - clk_data =kzalloc (sizeof (*clk_data) +sizeof (*clk_data->hws) * -IMX7ULP_CLK_PCC2_END ,GFP_KERNEL ); + clk_data =kzalloc (struct_size (clk_data, hws,IMX7ULP_CLK_PCC2_END ), +GFP_KERNEL );if (!clk_data)return ;@@ -183,8 +183,8 @@ static void __init imx7ulp_clk_pcc3_init(struct device_node *np)struct clk_hw **clks;void __iomem *base; - clk_data =kzalloc (sizeof (*clk_data) +sizeof (*clk_data->hws) * -IMX7ULP_CLK_PCC3_END ,GFP_KERNEL ); + clk_data =kzalloc (struct_size (clk_data, hws,IMX7ULP_CLK_PCC3_END ), +GFP_KERNEL );if (!clk_data)return ;@@ -228,8 +228,8 @@ static void __init imx7ulp_clk_smc1_init(struct device_node *np)struct clk_hw **clks;void __iomem *base; - clk_data =kzalloc (sizeof (*clk_data) +sizeof (*clk_data->hws) * -IMX7ULP_CLK_SMC1_END ,GFP_KERNEL ); + clk_data =kzalloc (struct_size (clk_data, hws,IMX7ULP_CLK_SMC1_END ), +GFP_KERNEL );if (!clk_data)return ;
Quoting Gustavo A. R. Silva (2018-12-23 22:40:25)
Quoted 14 lines
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; void *entry[]; };instance =
kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:
Quoted 6 lines
instance =
kzalloc(struct_size(instance, entry, count), GFP_KERNEL);This issue was detected with the help of Coccinelle.
Signed-off-by Gustavo A. R. Silva <[email protected]>---
Applied to clk-next
Quoted 15 lines · Stephen Boyd
Quoting Gustavo A. R. Silva (2018-12-23 22:40:25)
Quoted 14 lines
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; void *entry[]; };instance =
kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:
Quoted 9 lines
Quoted 6 lines
instance =
kzalloc(struct_size(instance, entry, count), GFP_KERNEL);This issue was detected with the help of Coccinelle.
Signed-off-by Gustavo A. R. Silva <[email protected]>---
Applied to clk-next
Thanks, Stephen.
--
Gustavo
_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel