diff options
Diffstat (limited to 'drivers/vhost/net.c')
| -rw-r--r-- | drivers/vhost/net.c | 28 | 
1 files changed, 15 insertions, 13 deletions
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 87469d67ede8..2927f02cc7e1 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -424,7 +424,7 @@ static void vhost_net_disable_vq(struct vhost_net *n,  	struct vhost_net_virtqueue *nvq =  		container_of(vq, struct vhost_net_virtqueue, vq);  	struct vhost_poll *poll = n->poll + (nvq - n->vqs); -	if (!vq->private_data) +	if (!vhost_vq_get_backend(vq))  		return;  	vhost_poll_stop(poll);  } @@ -437,7 +437,7 @@ static int vhost_net_enable_vq(struct vhost_net *n,  	struct vhost_poll *poll = n->poll + (nvq - n->vqs);  	struct socket *sock; -	sock = vq->private_data; +	sock = vhost_vq_get_backend(vq);  	if (!sock)  		return 0; @@ -524,7 +524,7 @@ static void vhost_net_busy_poll(struct vhost_net *net,  		return;  	vhost_disable_notify(&net->dev, vq); -	sock = rvq->private_data; +	sock = vhost_vq_get_backend(rvq);  	busyloop_timeout = poll_rx ? rvq->busyloop_timeout:  				     tvq->busyloop_timeout; @@ -570,8 +570,10 @@ static int vhost_net_tx_get_vq_desc(struct vhost_net *net,  	if (r == tvq->num && tvq->busyloop_timeout) {  		/* Flush batched packets first */ -		if (!vhost_sock_zcopy(tvq->private_data)) -			vhost_tx_batch(net, tnvq, tvq->private_data, msghdr); +		if (!vhost_sock_zcopy(vhost_vq_get_backend(tvq))) +			vhost_tx_batch(net, tnvq, +				       vhost_vq_get_backend(tvq), +				       msghdr);  		vhost_net_busy_poll(net, rvq, tvq, busyloop_intr, false); @@ -685,7 +687,7 @@ static int vhost_net_build_xdp(struct vhost_net_virtqueue *nvq,  	struct vhost_virtqueue *vq = &nvq->vq;  	struct vhost_net *net = container_of(vq->dev, struct vhost_net,  					     dev); -	struct socket *sock = vq->private_data; +	struct socket *sock = vhost_vq_get_backend(vq);  	struct page_frag *alloc_frag = &net->page_frag;  	struct virtio_net_hdr *gso;  	struct xdp_buff *xdp = &nvq->xdp[nvq->batched_xdp]; @@ -952,7 +954,7 @@ static void handle_tx(struct vhost_net *net)  	struct socket *sock;  	mutex_lock_nested(&vq->mutex, VHOST_NET_VQ_TX); -	sock = vq->private_data; +	sock = vhost_vq_get_backend(vq);  	if (!sock)  		goto out; @@ -1121,7 +1123,7 @@ static void handle_rx(struct vhost_net *net)  	int recv_pkts = 0;  	mutex_lock_nested(&vq->mutex, VHOST_NET_VQ_RX); -	sock = vq->private_data; +	sock = vhost_vq_get_backend(vq);  	if (!sock)  		goto out; @@ -1345,9 +1347,9 @@ static struct socket *vhost_net_stop_vq(struct vhost_net *n,  		container_of(vq, struct vhost_net_virtqueue, vq);  	mutex_lock(&vq->mutex); -	sock = vq->private_data; +	sock = vhost_vq_get_backend(vq);  	vhost_net_disable_vq(n, vq); -	vq->private_data = NULL; +	vhost_vq_set_backend(vq, NULL);  	vhost_net_buf_unproduce(nvq);  	nvq->rx_ring = NULL;  	mutex_unlock(&vq->mutex); @@ -1521,7 +1523,7 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd)  	}  	/* start polling new socket */ -	oldsock = vq->private_data; +	oldsock = vhost_vq_get_backend(vq);  	if (sock != oldsock) {  		ubufs = vhost_net_ubuf_alloc(vq,  					     sock && vhost_sock_zcopy(sock)); @@ -1531,7 +1533,7 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd)  		}  		vhost_net_disable_vq(n, vq); -		vq->private_data = sock; +		vhost_vq_set_backend(vq, sock);  		vhost_net_buf_unproduce(nvq);  		r = vhost_vq_init_access(vq);  		if (r) @@ -1568,7 +1570,7 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd)  	return 0;  err_used: -	vq->private_data = oldsock; +	vhost_vq_set_backend(vq, oldsock);  	vhost_net_enable_vq(n, vq);  	if (ubufs)  		vhost_net_ubuf_put_wait_and_free(ubufs);  |