diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 70ac60437d174411f891f20f8b477b20b74e8e8e..248b25008d1aafe6e4318e3e3668d461ca9103d6 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -711,8 +711,12 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd) mutex_unlock(&vq->mutex); - if (oldubufs) + if (oldubufs) { vhost_ubuf_put_and_wait(oldubufs); + mutex_lock(&vq->mutex); + vhost_zerocopy_signal_used(vq); + mutex_unlock(&vq->mutex); + } if (oldsock) { vhost_net_flush_vq(n, index);