diff options
Diffstat (limited to 'drivers/vhost/net.c')
| -rw-r--r-- | drivers/vhost/net.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 9af19b0cf3b7..07181cd8d52e 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -73,7 +73,8 @@ enum {  	VHOST_NET_FEATURES = VHOST_FEATURES |  			 (1ULL << VHOST_NET_F_VIRTIO_NET_HDR) |  			 (1ULL << VIRTIO_NET_F_MRG_RXBUF) | -			 (1ULL << VIRTIO_F_ACCESS_PLATFORM) +			 (1ULL << VIRTIO_F_ACCESS_PLATFORM) | +			 (1ULL << VIRTIO_F_RING_RESET)  };  enum { @@ -1511,6 +1512,9 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd)  	nvq = &n->vqs[index];  	mutex_lock(&vq->mutex); +	if (fd == -1) +		vhost_clear_msg(&n->dev); +  	/* Verify that ring has been setup correctly. */  	if (!vhost_vq_access_ok(vq)) {  		r = -EFAULT; @@ -1642,7 +1646,7 @@ static int vhost_net_set_features(struct vhost_net *n, u64 features)  		goto out_unlock;  	if ((features & (1ULL << VIRTIO_F_ACCESS_PLATFORM))) { -		if (vhost_init_device_iotlb(&n->dev, true)) +		if (vhost_init_device_iotlb(&n->dev))  			goto out_unlock;  	}  |