Check for the clock enable return value.
Addresses-Coverity: Event check_return.
Signed-off-by: Shubhrajyoti Datta <[email protected]>
---
drivers/tty/serial/xilinx_uartps.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
index 868f4e587263..bf0415f0a194 100644
--- a/drivers/tty/serial/xilinx_uartps.c
+++ b/drivers/tty/serial/xilinx_uartps.c
@@ -1347,12 +1347,18 @@ static int cdns_uart_resume(struct device *device)
unsigned long flags;
u32 ctrl_reg;
int may_wake;
+ int ret;
may_wake = device_may_wakeup(device);
if (console_suspend_enabled && uart_console(port) && !may_wake) {
- clk_enable(cdns_uart->pclk);
- clk_enable(cdns_uart->uartclk);
+ ret = clk_enable(cdns_uart->pclk);
+ if (ret)
+ return ret;
+
+ ret = clk_enable(cdns_uart->uartclk);
+ if (ret)
+ return ret;
spin_lock_irqsave(&port->lock, flags);
--
2.25.1
On Fri, Apr 29, 2022 at 01:44:19PM +0530, Shubhrajyoti Datta wrote:
> Check for the clock enable return value.
>
> Addresses-Coverity: Event check_return.
> Signed-off-by: Shubhrajyoti Datta <[email protected]>
> ---
> drivers/tty/serial/xilinx_uartps.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/tty/serial/xilinx_uartps.c b/drivers/tty/serial/xilinx_uartps.c
> index 868f4e587263..bf0415f0a194 100644
> --- a/drivers/tty/serial/xilinx_uartps.c
> +++ b/drivers/tty/serial/xilinx_uartps.c
> @@ -1347,12 +1347,18 @@ static int cdns_uart_resume(struct device *device)
> unsigned long flags;
> u32 ctrl_reg;
> int may_wake;
> + int ret;
>
> may_wake = device_may_wakeup(device);
>
> if (console_suspend_enabled && uart_console(port) && !may_wake) {
> - clk_enable(cdns_uart->pclk);
> - clk_enable(cdns_uart->uartclk);
> + ret = clk_enable(cdns_uart->pclk);
> + if (ret)
> + return ret;
> +
> + ret = clk_enable(cdns_uart->uartclk);
> + if (ret)
> + return ret;
Shouldn't you disable the clock you enabled if this fails here?
thanks,
greg k-h