Make mstp_clock_group.clks[] a flexible array member, and use the new
struct_size() helper, to combine the allocation of the group-private
structure and array of module clocks.

Signed-off-by: Geert Uytterhoeven <geert+rene...@glider.be>
---
 drivers/clk/renesas/clk-mstp.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/clk/renesas/clk-mstp.c b/drivers/clk/renesas/clk-mstp.c
index a5e9f9edf04079c7..dfbef37eed4a82e8 100644
--- a/drivers/clk/renesas/clk-mstp.c
+++ b/drivers/clk/renesas/clk-mstp.c
@@ -30,11 +30,12 @@
 /**
  * struct mstp_clock_group - MSTP gating clocks group
  *
- * @data: clocks in this group
+ * @data: clock specifier translation for clocks in this group
  * @smstpcr: module stop control register
  * @mstpsr: module stop status register (optional)
  * @lock: protects writes to SMSTPCR
  * @width_8bit: registers are 8-bit, not 32-bit
+ * @clks: clocks in this group
  */
 struct mstp_clock_group {
        struct clk_onecell_data data;
@@ -42,6 +43,7 @@ struct mstp_clock_group {
        void __iomem *mstpsr;
        spinlock_t lock;
        bool width_8bit;
+       struct clk *clks[];
 };
 
 /**
@@ -187,14 +189,13 @@ static void __init cpg_mstp_clocks_init(struct 
device_node *np)
        struct clk **clks;
        unsigned int i;
 
-       group = kzalloc(sizeof(*group), GFP_KERNEL);
-       clks = kmalloc_array(MSTP_MAX_CLOCKS, sizeof(*clks), GFP_KERNEL);
-       if (group == NULL || clks == NULL) {
+       group = kzalloc(struct_size(group, clks, MSTP_MAX_CLOCKS), GFP_KERNEL);
+       if (group == NULL) {
                kfree(group);
-               kfree(clks);
                return;
        }
 
+       clks = group->clks;
        spin_lock_init(&group->lock);
        group->data.clks = clks;
 
@@ -204,7 +205,6 @@ static void __init cpg_mstp_clocks_init(struct device_node 
*np)
        if (group->smstpcr == NULL) {
                pr_err("%s: failed to remap SMSTPCR\n", __func__);
                kfree(group);
-               kfree(clks);
                return;
        }
 
-- 
2.17.1

Reply via email to