Use devm_kstrdup_const() in the pmc-atom driver. This mostly serves as
an example of how to use this new routine to shrink driver code.

While we're at it: replace a call to kcalloc() with devm_kcalloc().

Signed-off-by: Bartosz Golaszewski <b...@bgdev.pl>
Reviewed-by: Stephen Boyd <sb...@kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.anders...@linaro.org>
---
 drivers/clk/x86/clk-pmc-atom.c | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/drivers/clk/x86/clk-pmc-atom.c b/drivers/clk/x86/clk-pmc-atom.c
index d977193842df..239197799ea3 100644
--- a/drivers/clk/x86/clk-pmc-atom.c
+++ b/drivers/clk/x86/clk-pmc-atom.c
@@ -247,14 +247,6 @@ static void plt_clk_unregister_fixed_rate_loop(struct 
clk_plt_data *data,
                plt_clk_unregister_fixed_rate(data->parents[i]);
 }
 
-static void plt_clk_free_parent_names_loop(const char **parent_names,
-                                          unsigned int i)
-{
-       while (i--)
-               kfree_const(parent_names[i]);
-       kfree(parent_names);
-}
-
 static void plt_clk_unregister_loop(struct clk_plt_data *data,
                                    unsigned int i)
 {
@@ -280,8 +272,8 @@ static const char **plt_clk_register_parents(struct 
platform_device *pdev,
        if (!data->parents)
                return ERR_PTR(-ENOMEM);
 
-       parent_names = kcalloc(nparents, sizeof(*parent_names),
-                              GFP_KERNEL);
+       parent_names = devm_kcalloc(&pdev->dev, nparents,
+                                   sizeof(*parent_names), GFP_KERNEL);
        if (!parent_names)
                return ERR_PTR(-ENOMEM);
 
@@ -294,7 +286,8 @@ static const char **plt_clk_register_parents(struct 
platform_device *pdev,
                        err = PTR_ERR(data->parents[i]);
                        goto err_unreg;
                }
-               parent_names[i] = kstrdup_const(clks[i].name, GFP_KERNEL);
+               parent_names[i] = devm_kstrdup_const(&pdev->dev,
+                                                    clks[i].name, GFP_KERNEL);
        }
 
        data->nparents = nparents;
@@ -302,7 +295,6 @@ static const char **plt_clk_register_parents(struct 
platform_device *pdev,
 
 err_unreg:
        plt_clk_unregister_fixed_rate_loop(data, i);
-       plt_clk_free_parent_names_loop(parent_names, i);
        return ERR_PTR(err);
 }
 
@@ -352,8 +344,6 @@ static int plt_clk_probe(struct platform_device *pdev)
                goto err_drop_mclk;
        }
 
-       plt_clk_free_parent_names_loop(parent_names, data->nparents);
-
        platform_set_drvdata(pdev, data);
        return 0;
 
@@ -362,7 +352,6 @@ static int plt_clk_probe(struct platform_device *pdev)
 err_unreg_clk_plt:
        plt_clk_unregister_loop(data, i);
        plt_clk_unregister_parents(data);
-       plt_clk_free_parent_names_loop(parent_names, data->nparents);
        return err;
 }
 
-- 
2.18.0

Reply via email to