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