diff mbox series

clk: mvebu: armada-37xx-tbg: Balance devm_clk_get in probe

Message ID 20180914153421.7090-1-gregory.clement@bootlin.com (mailing list archive)
State Changes Requested, archived
Headers show
Series clk: mvebu: armada-37xx-tbg: Balance devm_clk_get in probe | expand

Commit Message

Gregory CLEMENT Sept. 14, 2018, 3:34 p.m. UTC
The parent clock is get only to have its name, and then the clock is no
more used, so we can safely free it using devm_clk_put.

Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
---
 drivers/clk/mvebu/armada-37xx-tbg.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Stephen Boyd Oct. 10, 2018, 5:36 p.m. UTC | #1
Quoting Gregory CLEMENT (2018-09-14 08:34:21)
> The parent clock is get only to have its name, and then the clock is no
> more used, so we can safely free it using devm_clk_put.
> 
> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
> ---
>  drivers/clk/mvebu/armada-37xx-tbg.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/clk/mvebu/armada-37xx-tbg.c b/drivers/clk/mvebu/armada-37xx-tbg.c
> index 71f30149e80e..caaa91a41683 100644
> --- a/drivers/clk/mvebu/armada-37xx-tbg.c
> +++ b/drivers/clk/mvebu/armada-37xx-tbg.c
> @@ -102,6 +102,7 @@ static int armada_3700_tbg_clock_probe(struct platform_device *pdev)
>                 return -EINVAL;
>         }
>         parent_name = __clk_get_name(parent);
> +       devm_clk_put(dev, parent);

So then why use devm_clk_get()? Please replace both so tha
devm_clk_put() doesn't need to be used..

>  
>         res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>         reg = devm_ioremap_resource(dev, res);
Gregory CLEMENT Oct. 10, 2018, 6:06 p.m. UTC | #2
Hi Stephen,
 
 On mer., oct. 10 2018, Stephen Boyd <sboyd@kernel.org> wrote:

> Quoting Gregory CLEMENT (2018-09-14 08:34:21)
>> The parent clock is get only to have its name, and then the clock is no
>> more used, so we can safely free it using devm_clk_put.
>> 
>> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
>> ---
>>  drivers/clk/mvebu/armada-37xx-tbg.c | 1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/drivers/clk/mvebu/armada-37xx-tbg.c b/drivers/clk/mvebu/armada-37xx-tbg.c
>> index 71f30149e80e..caaa91a41683 100644
>> --- a/drivers/clk/mvebu/armada-37xx-tbg.c
>> +++ b/drivers/clk/mvebu/armada-37xx-tbg.c
>> @@ -102,6 +102,7 @@ static int armada_3700_tbg_clock_probe(struct platform_device *pdev)
>>                 return -EINVAL;
>>         }
>>         parent_name = __clk_get_name(parent);
>> +       devm_clk_put(dev, parent);
>
> So then why use devm_clk_get()? Please replace both so tha
> devm_clk_put() doesn't need to be used..

Indeed between the successful devm_clk_get and the devm_clk_put we don't
exit the function in error so I can use clk_get and clk_put.

Gregory

>
>>  
>>         res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>>         reg = devm_ioremap_resource(dev, res);
diff mbox series

Patch

diff --git a/drivers/clk/mvebu/armada-37xx-tbg.c b/drivers/clk/mvebu/armada-37xx-tbg.c
index 71f30149e80e..caaa91a41683 100644
--- a/drivers/clk/mvebu/armada-37xx-tbg.c
+++ b/drivers/clk/mvebu/armada-37xx-tbg.c
@@ -102,6 +102,7 @@  static int armada_3700_tbg_clock_probe(struct platform_device *pdev)
 		return -EINVAL;
 	}
 	parent_name = __clk_get_name(parent);
+	devm_clk_put(dev, parent);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	reg = devm_ioremap_resource(dev, res);