2020-04-21 12:29:33

by Zou Wei

[permalink] [raw]
Subject: [PATCH -next] tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart

This patch fixes below error reported by coccicheck

drivers/tty/serial/bcm63xx_uart.c:848:2-8: ERROR: missing clk_put;
clk_get on line 842 and execution via conditional on line 846

Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")
Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Zou Wei <[email protected]>
---
drivers/tty/serial/bcm63xx_uart.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
index 5674da2..ed0aa5c 100644
--- a/drivers/tty/serial/bcm63xx_uart.c
+++ b/drivers/tty/serial/bcm63xx_uart.c
@@ -843,8 +843,10 @@ static int bcm_uart_probe(struct platform_device *pdev)
if (IS_ERR(clk) && pdev->dev.of_node)
clk = of_clk_get(pdev->dev.of_node, 0);

- if (IS_ERR(clk))
+ if (IS_ERR(clk)) {
+ clk_put(clk);
return -ENODEV;
+ }

port->iotype = UPIO_MEM;
port->irq = res_irq->start;
--
2.6.2


2020-04-23 15:52:16

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH -next] tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart



On 4/21/2020 5:31 AM, Zou Wei wrote:
> This patch fixes below error reported by coccicheck
>
> drivers/tty/serial/bcm63xx_uart.c:848:2-8: ERROR: missing clk_put;
> clk_get on line 842 and execution via conditional on line 846
>
> Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")

The driver was doing that prior to being moved, and since this is an
error path, I am not sure the Fixes tag is really warranted.

Acked-by: Florian Fainelli <[email protected]>
--
Florian

2020-04-27 06:21:47

by Jiri Slaby

[permalink] [raw]
Subject: Re: [PATCH -next] tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart

On 21. 04. 20, 14:31, Zou Wei wrote:
> This patch fixes below error reported by coccicheck
>
> drivers/tty/serial/bcm63xx_uart.c:848:2-8: ERROR: missing clk_put;
> clk_get on line 842 and execution via conditional on line 846
>
> Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Zou Wei <[email protected]>
> ---
> drivers/tty/serial/bcm63xx_uart.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
> index 5674da2..ed0aa5c 100644
> --- a/drivers/tty/serial/bcm63xx_uart.c
> +++ b/drivers/tty/serial/bcm63xx_uart.c
> @@ -843,8 +843,10 @@ static int bcm_uart_probe(struct platform_device *pdev)
> if (IS_ERR(clk) && pdev->dev.of_node)
> clk = of_clk_get(pdev->dev.of_node, 0);
>
> - if (IS_ERR(clk))
> + if (IS_ERR(clk)) {
> + clk_put(clk);

Why would you want to put an erroneous clk?

> return -ENODEV;
> + }
>
> port->iotype = UPIO_MEM;
> port->irq = res_irq->start;
>


--
js
suse labs

2020-04-27 17:32:10

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH -next] tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart



On 4/26/2020 11:19 PM, Jiri Slaby wrote:
> On 21. 04. 20, 14:31, Zou Wei wrote:
>> This patch fixes below error reported by coccicheck
>>
>> drivers/tty/serial/bcm63xx_uart.c:848:2-8: ERROR: missing clk_put;
>> clk_get on line 842 and execution via conditional on line 846
>>
>> Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")
>> Reported-by: Hulk Robot <[email protected]>
>> Signed-off-by: Zou Wei <[email protected]>
>> ---
>> drivers/tty/serial/bcm63xx_uart.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
>> index 5674da2..ed0aa5c 100644
>> --- a/drivers/tty/serial/bcm63xx_uart.c
>> +++ b/drivers/tty/serial/bcm63xx_uart.c
>> @@ -843,8 +843,10 @@ static int bcm_uart_probe(struct platform_device *pdev)
>> if (IS_ERR(clk) && pdev->dev.of_node)
>> clk = of_clk_get(pdev->dev.of_node, 0);
>>
>> - if (IS_ERR(clk))
>> + if (IS_ERR(clk)) {
>> + clk_put(clk);
>
> Why would you want to put an erroneous clk?

Doh, somehow I completely missed, you are right this does not look legit.
--
Florian

2020-04-28 11:23:23

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH -next] tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart

On Mon, Apr 27, 2020 at 10:29:58AM -0700, Florian Fainelli wrote:
>
>
> On 4/26/2020 11:19 PM, Jiri Slaby wrote:
> > On 21. 04. 20, 14:31, Zou Wei wrote:
> >> This patch fixes below error reported by coccicheck
> >>
> >> drivers/tty/serial/bcm63xx_uart.c:848:2-8: ERROR: missing clk_put;
> >> clk_get on line 842 and execution via conditional on line 846
> >>
> >> Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")
> >> Reported-by: Hulk Robot <[email protected]>
> >> Signed-off-by: Zou Wei <[email protected]>
> >> ---
> >> drivers/tty/serial/bcm63xx_uart.c | 4 +++-
> >> 1 file changed, 3 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
> >> index 5674da2..ed0aa5c 100644
> >> --- a/drivers/tty/serial/bcm63xx_uart.c
> >> +++ b/drivers/tty/serial/bcm63xx_uart.c
> >> @@ -843,8 +843,10 @@ static int bcm_uart_probe(struct platform_device *pdev)
> >> if (IS_ERR(clk) && pdev->dev.of_node)
> >> clk = of_clk_get(pdev->dev.of_node, 0);
> >>
> >> - if (IS_ERR(clk))
> >> + if (IS_ERR(clk)) {
> >> + clk_put(clk);
> >
> > Why would you want to put an erroneous clk?
>
> Doh, somehow I completely missed, you are right this does not look legit.

Ugh, can you send a revert for this please?

thanks,

greg k-h

2020-05-01 01:43:20

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH -next] tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart



On 4/28/2020 4:18 AM, Greg KH wrote:
> On Mon, Apr 27, 2020 at 10:29:58AM -0700, Florian Fainelli wrote:
>>
>>
>> On 4/26/2020 11:19 PM, Jiri Slaby wrote:
>>> On 21. 04. 20, 14:31, Zou Wei wrote:
>>>> This patch fixes below error reported by coccicheck
>>>>
>>>> drivers/tty/serial/bcm63xx_uart.c:848:2-8: ERROR: missing clk_put;
>>>> clk_get on line 842 and execution via conditional on line 846
>>>>
>>>> Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")
>>>> Reported-by: Hulk Robot <[email protected]>
>>>> Signed-off-by: Zou Wei <[email protected]>
>>>> ---
>>>> drivers/tty/serial/bcm63xx_uart.c | 4 +++-
>>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
>>>> index 5674da2..ed0aa5c 100644
>>>> --- a/drivers/tty/serial/bcm63xx_uart.c
>>>> +++ b/drivers/tty/serial/bcm63xx_uart.c
>>>> @@ -843,8 +843,10 @@ static int bcm_uart_probe(struct platform_device *pdev)
>>>> if (IS_ERR(clk) && pdev->dev.of_node)
>>>> clk = of_clk_get(pdev->dev.of_node, 0);
>>>>
>>>> - if (IS_ERR(clk))
>>>> + if (IS_ERR(clk)) {
>>>> + clk_put(clk);
>>>
>>> Why would you want to put an erroneous clk?
>>
>> Doh, somehow I completely missed, you are right this does not look legit.
>
> Ugh, can you send a revert for this please?

Yes, now done:

https://lore.kernel.org/linux-arm-kernel/[email protected]/
--
Florian