net: macb: Only disable NAPI on the actual error path
authorCharles Keepax <ckeepax@opensource.cirrus.com>
Mon, 15 Jun 2020 13:18:54 +0000 (14:18 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Jun 2020 20:10:34 +0000 (13:10 -0700)
A recent change added a disable to NAPI into macb_open, this was
intended to only happen on the error path but accidentally applies
to all paths. This causes NAPI to be disabled on the success path, which
leads to the network to no longer functioning.

Fixes: 014406babc1f ("net: cadence: macb: disable NAPI on error")
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Tested-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cadence/macb_main.c

index 5b9d7c60eebc0d5528ae3b1c335cf050bcf1ee94..67933079aeea5c7ffdfafb77883d1c94d959a11a 100644 (file)
@@ -2565,15 +2565,14 @@ static int macb_open(struct net_device *dev)
        if (bp->ptp_info)
                bp->ptp_info->ptp_init(dev);
 
+       return 0;
+
 napi_exit:
        for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue)
                napi_disable(&queue->napi);
 pm_exit:
-       if (err) {
-               pm_runtime_put_sync(&bp->pdev->dev);
-               return err;
-       }
-       return 0;
+       pm_runtime_put_sync(&bp->pdev->dev);
+       return err;
 }
 
 static int macb_close(struct net_device *dev)