diff options
| author | Andrey Ryabinin <[email protected]> | 2022-05-17 18:08:45 +0000 |
|---|---|---|
| committer | Michael S. Tsirkin <[email protected]> | 2022-05-31 16:45:10 +0000 |
| commit | 2c029f3298594c5160ae1036f03db607fa891484 (patch) | |
| tree | f8c93dea079533dffa29b87b6f18fe79871e9208 /drivers/vhost/net.c | |
| parent | vhost: flush dev once during vhost_dev_stop (diff) | |
| download | kernel-2c029f3298594c5160ae1036f03db607fa891484.tar.gz kernel-2c029f3298594c5160ae1036f03db607fa891484.zip | |
vhost_net: get rid of vhost_net_flush_vq() and extra flush calls
vhost_net_flush_vq() calls vhost_work_dev_flush() twice passing
vhost_dev pointer obtained via 'n->poll[index].dev' and
'n->vqs[index].vq.poll.dev'. This is actually the same pointer,
initialized in vhost_net_open()/vhost_dev_init()/vhost_poll_init()
Remove vhost_net_flush_vq() and call vhost_work_dev_flush() directly.
Do the flushes only once instead of several flush calls in a row
which seems rather useless.
Signed-off-by: Andrey Ryabinin <[email protected]>
[drop vhost_dev forward declaration in vhost.h]
Signed-off-by: Mike Christie <[email protected]>
Acked-by: Jason Wang <[email protected]>
Reviewed-by: Stefano Garzarella <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
Diffstat (limited to 'drivers/vhost/net.c')
| -rw-r--r-- | drivers/vhost/net.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index d648faf015d3..20eb076300bb 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -1374,16 +1374,9 @@ static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, *rx_sock = vhost_net_stop_vq(n, &n->vqs[VHOST_NET_VQ_RX].vq); } -static void vhost_net_flush_vq(struct vhost_net *n, int index) -{ - vhost_work_dev_flush(n->poll[index].dev); - vhost_work_dev_flush(n->vqs[index].vq.poll.dev); -} - static void vhost_net_flush(struct vhost_net *n) { - vhost_net_flush_vq(n, VHOST_NET_VQ_TX); - vhost_net_flush_vq(n, VHOST_NET_VQ_RX); + vhost_work_dev_flush(&n->dev); if (n->vqs[VHOST_NET_VQ_TX].ubufs) { mutex_lock(&n->vqs[VHOST_NET_VQ_TX].vq.mutex); n->tx_flush = true; @@ -1572,7 +1565,7 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd) } if (oldsock) { - vhost_net_flush_vq(n, index); + vhost_work_dev_flush(&n->dev); sockfd_put(oldsock); } |
