Juergen Gross 0d2ec0
Patch-mainline: v6.2-rc7
Juergen Gross 0d2ec0
Git-commit: 63b114042d8a9c02d9939889177c36dbdb17a588
Juergen Gross 0d2ec0
References: git-fixes
Juergen Gross 0d2ec0
From: Parav Pandit <parav@nvidia.com>
Juergen Gross 0d2ec0
Date: Thu, 2 Feb 2023 18:35:16 +0200
Juergen Gross 0d2ec0
Subject: [PATCH] virtio-net: Keep stop() to follow mirror sequence of open()
Juergen Gross 0d2ec0
Juergen Gross 0d2ec0
Cited commit in fixes tag frees rxq xdp info while RQ NAPI is
Juergen Gross 0d2ec0
still enabled and packet processing may be ongoing.
Juergen Gross 0d2ec0
Juergen Gross 0d2ec0
Follow the mirror sequence of open() in the stop() callback.
Juergen Gross 0d2ec0
This ensures that when rxq info is unregistered, no rx
Juergen Gross 0d2ec0
packet processing is ongoing.
Juergen Gross 0d2ec0
Juergen Gross 0d2ec0
Fixes: 754b8a21a96d ("virtio_net: setup xdp_rxq_info")
Juergen Gross 0d2ec0
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Juergen Gross 0d2ec0
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Juergen Gross 0d2ec0
Signed-off-by: Parav Pandit <parav@nvidia.com>
Juergen Gross 0d2ec0
Link: https://lore.kernel.org/r/20230202163516.12559-1-parav@nvidia.com
Juergen Gross 0d2ec0
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Juergen Gross 0d2ec0
Signed-off-by: Juergen Gross <jgross@suse.com>
Juergen Gross 0d2ec0
---
Juergen Gross 0d2ec0
 drivers/net/virtio_net.c | 2 +-
Juergen Gross 0d2ec0
 1 file changed, 1 insertion(+), 1 deletion(-)
Juergen Gross 0d2ec0
Juergen Gross 0d2ec0
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
Juergen Gross 0d2ec0
index 6df14dd5bf46..61e33e4dd0cd 100644
Juergen Gross 0d2ec0
--- a/drivers/net/virtio_net.c
Juergen Gross 0d2ec0
+++ b/drivers/net/virtio_net.c
Juergen Gross 0d2ec0
@@ -2158,8 +2158,8 @@ static int virtnet_close(struct net_device *dev)
Juergen Gross 0d2ec0
 	cancel_delayed_work_sync(&vi->refill);
Juergen Gross 0d2ec0
 
Juergen Gross 0d2ec0
 	for (i = 0; i < vi->max_queue_pairs; i++) {
Juergen Gross 0d2ec0
-		xdp_rxq_info_unreg(&vi->rq[i].xdp_rxq);
Juergen Gross 0d2ec0
 		napi_disable(&vi->rq[i].napi);
Juergen Gross 0d2ec0
+		xdp_rxq_info_unreg(&vi->rq[i].xdp_rxq);
Juergen Gross 0d2ec0
 		virtnet_napi_tx_disable(&vi->sq[i].napi);
Juergen Gross 0d2ec0
 	}
Juergen Gross 0d2ec0
 
Juergen Gross 0d2ec0
-- 
Juergen Gross 0d2ec0
2.35.3
Juergen Gross 0d2ec0