lkml.org 
[lkml]   [2022]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.19 0898/1157] serial: pic32: fix missing clk_disable_unprepare() on error in pic32_uart_startup()
    Date
    From: Yang Yingliang <yangyingliang@huawei.com>

    [ Upstream commit 6f3cdf2bf1ba9b70de6c2921a415951a0d59873b ]

    Fix the missing clk_disable_unprepare() before return
    from pic32_uart_startup() in the error handling case.

    Fixes: 157b9394709e ("serial: pic32_uart: Add PIC32 UART driver")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20220525021204.2407631-1-yangyingliang@huawei.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/tty/serial/pic32_uart.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/tty/serial/pic32_uart.c b/drivers/tty/serial/pic32_uart.c
    index b399aac530fe..f418f1de66b3 100644
    --- a/drivers/tty/serial/pic32_uart.c
    +++ b/drivers/tty/serial/pic32_uart.c
    @@ -503,7 +503,7 @@ static int pic32_uart_startup(struct uart_port *port)
    if (!sport->irq_fault_name) {
    dev_err(port->dev, "%s: kasprintf err!", __func__);
    ret = -ENOMEM;
    - goto out_done;
    + goto out_disable_clk;
    }
    irq_set_status_flags(sport->irq_fault, IRQ_NOAUTOEN);
    ret = request_irq(sport->irq_fault, pic32_uart_fault_interrupt,
    @@ -579,6 +579,8 @@ static int pic32_uart_startup(struct uart_port *port)
    out_f:
    free_irq(sport->irq_fault, port);
    kfree(sport->irq_fault_name);
    +out_disable_clk:
    + clk_disable_unprepare(sport->clk);
    out_done:
    return ret;
    }
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-16 02:41    [W:2.448 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site