Skip to content

Commit 76a771e

Browse files
lkpdnPaolo Abeni
authored andcommitted
virtio_net: ensure netdev_tx_reset_queue is called on bind xsk for tx
virtnet_sq_bind_xsk_pool() flushes tx skbs and then resets tx queue, so DQL counters need to be reset when flushing has actually occurred, Add virtnet_sq_free_unused_buf_done() as a callback for virtqueue_resize() to handle this. Fixes: 21a4e3c ("virtio_net: xsk: bind/unbind xsk for tx") Signed-off-by: Koichiro Den <[email protected]> Acked-by: Jason Wang <[email protected]> Reviewed-by: Xuan Zhuo <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
1 parent 8d2da07 commit 76a771e

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/net/virtio_net.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5740,7 +5740,8 @@ static int virtnet_sq_bind_xsk_pool(struct virtnet_info *vi,
57405740

57415741
virtnet_tx_pause(vi, sq);
57425742

5743-
err = virtqueue_reset(sq->vq, virtnet_sq_free_unused_buf, NULL);
5743+
err = virtqueue_reset(sq->vq, virtnet_sq_free_unused_buf,
5744+
virtnet_sq_free_unused_buf_done);
57445745
if (err) {
57455746
netdev_err(vi->dev, "reset tx fail: tx queue index: %d err: %d\n", qindex, err);
57465747
pool = NULL;

0 commit comments

Comments
 (0)