netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: macb: Only disable NAPI on the actual error path
@ 2020-06-15 13:18 Charles Keepax
  2020-06-15 14:51 ` LABBE Corentin
  2020-06-15 20:11 ` David Miller
  0 siblings, 2 replies; 3+ messages in thread
From: Charles Keepax @ 2020-06-15 13:18 UTC (permalink / raw)
  To: davem, nicolas.ferre, kuba; +Cc: clabbe, netdev

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>
---
 drivers/net/ethernet/cadence/macb_main.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 5b9d7c60eebc0..67933079aeea5 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -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)
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] net: macb: Only disable NAPI on the actual error path
  2020-06-15 13:18 [PATCH] net: macb: Only disable NAPI on the actual error path Charles Keepax
@ 2020-06-15 14:51 ` LABBE Corentin
  2020-06-15 20:11 ` David Miller
  1 sibling, 0 replies; 3+ messages in thread
From: LABBE Corentin @ 2020-06-15 14:51 UTC (permalink / raw)
  To: Charles Keepax; +Cc: davem, nicolas.ferre, kuba, netdev

On Mon, Jun 15, 2020 at 02:18:54PM +0100, Charles Keepax wrote:
> 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>
> ---
>  drivers/net/ethernet/cadence/macb_main.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
> index 5b9d7c60eebc0..67933079aeea5 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -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)
> -- 
> 2.11.0
> 

Shame on me to not have see this.

With the fix it works.
Tested-by: Corentin Labbe <clabbe@baylibre.com>
Tested-on: qemu-xilinx-zynq-a9

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] net: macb: Only disable NAPI on the actual error path
  2020-06-15 13:18 [PATCH] net: macb: Only disable NAPI on the actual error path Charles Keepax
  2020-06-15 14:51 ` LABBE Corentin
@ 2020-06-15 20:11 ` David Miller
  1 sibling, 0 replies; 3+ messages in thread
From: David Miller @ 2020-06-15 20:11 UTC (permalink / raw)
  To: ckeepax; +Cc: nicolas.ferre, kuba, clabbe, netdev

From: Charles Keepax <ckeepax@opensource.cirrus.com>
Date: Mon, 15 Jun 2020 14:18:54 +0100

> 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>

Applied, thank you.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-06-15 20:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-15 13:18 [PATCH] net: macb: Only disable NAPI on the actual error path Charles Keepax
2020-06-15 14:51 ` LABBE Corentin
2020-06-15 20:11 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).