serial: xilinx_uartps: Fix the error path
authorShubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Tue, 9 May 2017 06:20:32 +0000 (11:50 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 May 2017 14:38:20 +0000 (16:38 +0200)
Fix the runtime calls in the error path.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/xilinx_uartps.c

index c0539950f8d7f29725dd4433e6905d5e3d07b1c7..b5b77ba3ac65a897905bd756e4a159d35693425e 100644 (file)
@@ -1587,20 +1587,21 @@ static int cdns_uart_probe(struct platform_device *pdev)
        if (rc) {
                dev_err(&pdev->dev,
                        "uart_add_one_port() failed; err=%i\n", rc);
-               goto err_out_notif_unreg;
+               goto err_out_pm_disable;
        }
 
        return 0;
 
+err_out_pm_disable:
+       pm_runtime_disable(&pdev->dev);
+       pm_runtime_set_suspended(&pdev->dev);
+       pm_runtime_dont_use_autosuspend(&pdev->dev);
 err_out_notif_unreg:
 #ifdef CONFIG_COMMON_CLK
        clk_notifier_unregister(cdns_uart_data->uartclk,
                        &cdns_uart_data->clk_rate_change_nb);
 #endif
 err_out_clk_disable:
-       pm_runtime_disable(&pdev->dev);
-       pm_runtime_set_suspended(&pdev->dev);
-       pm_runtime_dont_use_autosuspend(&pdev->dev);
        clk_disable_unprepare(cdns_uart_data->uartclk);
 err_out_clk_dis_pclk:
        clk_disable_unprepare(cdns_uart_data->pclk);