]> git.baikalelectronics.ru Git - kernel.git/commitdiff
r8169: use pm_runtime_put_sync in rtl_open error path
authorHeiner Kallweit <hkallweit1@gmail.com>
Thu, 29 Oct 2020 18:02:53 +0000 (19:02 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 31 Oct 2020 23:35:59 +0000 (16:35 -0700)
We can safely runtime-suspend the chip if rtl_open() fails. Therefore
switch the error path to use pm_runtime_put_sync() as well.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://lore.kernel.org/r/aa093b1e-f295-5700-1cb7-954b54dd8f17@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/realtek/r8169_main.c

index 75df476c6f7bdeef857d98ef9be9b15fce33bdc5..319399a03cb5553be20424df7f0bfc9c0528eb00 100644 (file)
@@ -4701,7 +4701,7 @@ static int rtl_open(struct net_device *dev)
        tp->TxDescArray = dma_alloc_coherent(&pdev->dev, R8169_TX_RING_BYTES,
                                             &tp->TxPhyAddr, GFP_KERNEL);
        if (!tp->TxDescArray)
-               goto err_pm_runtime_put;
+               goto out;
 
        tp->RxDescArray = dma_alloc_coherent(&pdev->dev, R8169_RX_RING_BYTES,
                                             &tp->RxPhyAddr, GFP_KERNEL);
@@ -4726,9 +4726,9 @@ static int rtl_open(struct net_device *dev)
        rtl8169_up(tp);
        rtl8169_init_counter_offsets(tp);
        netif_start_queue(dev);
-
-       pm_runtime_put_sync(&pdev->dev);
 out:
+       pm_runtime_put_sync(&pdev->dev);
+
        return retval;
 
 err_free_irq:
@@ -4744,8 +4744,6 @@ err_free_tx_0:
        dma_free_coherent(&pdev->dev, R8169_TX_RING_BYTES, tp->TxDescArray,
                          tp->TxPhyAddr);
        tp->TxDescArray = NULL;
-err_pm_runtime_put:
-       pm_runtime_put_noidle(&pdev->dev);
        goto out;
 }