OSDN Git Service

net: macb: undo operations in case of failure
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Thu, 18 Jun 2020 08:37:40 +0000 (11:37 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sat, 20 Jun 2020 02:59:14 +0000 (19:59 -0700)
Undo previously done operation in case macb_phylink_connect()
fails. Since macb_reset_hw() is the 1st undo operation the
napi_exit label was renamed to reset_hw.

Fixes: 7897b071ac3b ("net: macb: convert to phylink")
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cadence/macb_main.c

index 6793307..257c492 100644 (file)
@@ -2558,7 +2558,7 @@ static int macb_open(struct net_device *dev)
 
        err = macb_phylink_connect(bp);
        if (err)
-               goto napi_exit;
+               goto reset_hw;
 
        netif_tx_start_all_queues(dev);
 
@@ -2567,9 +2567,11 @@ static int macb_open(struct net_device *dev)
 
        return 0;
 
-napi_exit:
+reset_hw:
+       macb_reset_hw(bp);
        for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue)
                napi_disable(&queue->napi);
+       macb_free_consistent(bp);
 pm_exit:
        pm_runtime_put_sync(&bp->pdev->dev);
        return err;