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

Jiri Slaby
2020-04-27T06:19:38Z

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;
>

--
js
suse labs