diff mbox series

[-next] tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart

Message ID 1587472306-105155-1-git-send-email-zou_wei@huawei.com (mailing list archive)
State Mainlined
Commit 580d952e44de5509c69c8f9346180ecaa78ebeec
Headers show
Series [-next] tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart | expand

Commit Message

Zou Wei April 21, 2020, 12:31 p.m. UTC
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 <hulkci@huawei.com>
Signed-off-by: Zou Wei <zou_wei@huawei.com>
---
 drivers/tty/serial/bcm63xx_uart.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Florian Fainelli April 23, 2020, 3:46 p.m. UTC | #1
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 <f.fainelli@gmail.com>
Jiri Slaby April 27, 2020, 6:19 a.m. UTC | #2
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 <hulkci@huawei.com>
> Signed-off-by: Zou Wei <zou_wei@huawei.com>
> ---
>  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;
>
Florian Fainelli April 27, 2020, 5:29 p.m. UTC | #3
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 <hulkci@huawei.com>
>> Signed-off-by: Zou Wei <zou_wei@huawei.com>
>> ---
>>  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.
Greg KH April 28, 2020, 11:18 a.m. UTC | #4
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 <hulkci@huawei.com>
> >> Signed-off-by: Zou Wei <zou_wei@huawei.com>
> >> ---
> >>  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
Florian Fainelli May 1, 2020, 1:40 a.m. UTC | #5
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 <hulkci@huawei.com>
>>>> Signed-off-by: Zou Wei <zou_wei@huawei.com>
>>>> ---
>>>>  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/20200501013904.1394-1-f.fainelli@gmail.com/
diff mbox series

Patch

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;