search for: tx_sock

Displaying 20 results from an estimated 53 matches for "tx_sock".

Did you mean: tx_lock
2017 Dec 24
2
[PATCH] vhost: remove unused lock check flag in vhost_dev_cleanup()
...changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index c7bdeb655646..a354d8d731e3 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -996,7 +996,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) vhost_net_stop(n, &tx_sock, &rx_sock); vhost_net_flush(n); vhost_dev_stop(&n->dev); - vhost_dev_cleanup(&n->dev, false); + vhost_dev_cleanup(&n->dev); vhost_net_vq_reset(n); if (tx_sock) sockfd_put(tx_sock); diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c index 71517b3c5558..797d0...
2015 Apr 17
0
[PATCH] Revert "vhost: fix release path lockdep checks"
...3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 7d137a4..26c4837 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -793,7 +793,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) vhost_net_stop(n, &tx_sock, &rx_sock); vhost_net_flush(n); vhost_dev_stop(&n->dev); - vhost_dev_cleanup(&n->dev, false); + vhost_dev_cleanup(&n->dev); vhost_net_vq_reset(n); if (tx_sock) sockfd_put(tx_sock); diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 2ee2826..c6640d3...
2015 Apr 17
0
[PATCH RESEND] Revert "vhost: fix release path lockdep checks"
...3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 7d137a4..26c4837 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -793,7 +793,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) vhost_net_stop(n, &tx_sock, &rx_sock); vhost_net_flush(n); vhost_dev_stop(&n->dev); - vhost_dev_cleanup(&n->dev, false); + vhost_dev_cleanup(&n->dev); vhost_net_vq_reset(n); if (tx_sock) sockfd_put(tx_sock); diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 2ee2826..c6640d3...
2015 Apr 17
0
[PATCH] Revert "vhost: fix release path lockdep checks"
...3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 7d137a4..26c4837 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -793,7 +793,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) vhost_net_stop(n, &tx_sock, &rx_sock); vhost_net_flush(n); vhost_dev_stop(&n->dev); - vhost_dev_cleanup(&n->dev, false); + vhost_dev_cleanup(&n->dev); vhost_net_vq_reset(n); if (tx_sock) sockfd_put(tx_sock); diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 2ee2826..c6640d3...
2015 Apr 17
0
[PATCH RESEND] Revert "vhost: fix release path lockdep checks"
...3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 7d137a4..26c4837 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -793,7 +793,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) vhost_net_stop(n, &tx_sock, &rx_sock); vhost_net_flush(n); vhost_dev_stop(&n->dev); - vhost_dev_cleanup(&n->dev, false); + vhost_dev_cleanup(&n->dev); vhost_net_vq_reset(n); if (tx_sock) sockfd_put(tx_sock); diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index 2ee2826..c6640d3...
2011 Nov 18
3
[PATCH] vhost-net: Acquire device lock when releasing device
...2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 882a51f..c9be601 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -586,6 +586,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) struct socket *tx_sock; struct socket *rx_sock; + mutex_lock(&n->dev.mutex); vhost_net_stop(n, &tx_sock, &rx_sock); vhost_net_flush(n); vhost_dev_cleanup(&n->dev); @@ -596,6 +597,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) /* We do an extra flush before freeing...
2011 Nov 18
3
[PATCH] vhost-net: Acquire device lock when releasing device
...2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index 882a51f..c9be601 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -586,6 +586,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) struct socket *tx_sock; struct socket *rx_sock; + mutex_lock(&n->dev.mutex); vhost_net_stop(n, &tx_sock, &rx_sock); vhost_net_flush(n); vhost_dev_cleanup(&n->dev); @@ -596,6 +597,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) /* We do an extra flush before freeing...
2013 Apr 27
0
[PATCH] vhost: Move vhost-net zerocopy support fields to net.c
...gt;kref); mutex_unlock(&n->vqs[VHOST_NET_VQ_TX].vq.mutex); } } @@ -733,6 +841,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) vhost_net_flush(n); vhost_dev_stop(&n->dev); vhost_dev_cleanup(&n->dev, false); + vhost_net_reset_ubuf_info(n); if (tx_sock) fput(tx_sock->file); if (rx_sock) @@ -814,6 +923,7 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd) { struct socket *sock, *oldsock; struct vhost_virtqueue *vq; + struct vhost_net_virtqueue *nvq; struct vhost_ubuf_ref *ubufs, *oldubufs = NULL; int...
2013 Apr 27
0
[PATCH] vhost: Move vhost-net zerocopy support fields to net.c
...gt;kref); mutex_unlock(&n->vqs[VHOST_NET_VQ_TX].vq.mutex); } } @@ -733,6 +841,7 @@ static int vhost_net_release(struct inode *inode, struct file *f) vhost_net_flush(n); vhost_dev_stop(&n->dev); vhost_dev_cleanup(&n->dev, false); + vhost_net_reset_ubuf_info(n); if (tx_sock) fput(tx_sock->file); if (rx_sock) @@ -814,6 +923,7 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd) { struct socket *sock, *oldsock; struct vhost_virtqueue *vq; + struct vhost_net_virtqueue *nvq; struct vhost_ubuf_ref *ubufs, *oldubufs = NULL; int...
2009 Nov 02
1
[PATCHv6 3/3] vhost_net: a kernel-level virtio server
...x_lock(&n->vqs[index].mutex); + sock = n->vqs[index].private_data; + vhost_net_disable_vq(n, index); + rcu_assign_pointer(n->vqs[index].private_data, NULL); + mutex_unlock(&n->vqs[index].mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_TX); + *rx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n->poll + index); + vhost_poll_flush(&n->dev.vqs[index].po...
2009 Nov 02
1
[PATCHv6 3/3] vhost_net: a kernel-level virtio server
...x_lock(&n->vqs[index].mutex); + sock = n->vqs[index].private_data; + vhost_net_disable_vq(n, index); + rcu_assign_pointer(n->vqs[index].private_data, NULL); + mutex_unlock(&n->vqs[index].mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_TX); + *rx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n->poll + index); + vhost_poll_flush(&n->dev.vqs[index].po...
2014 Feb 13
2
[PATCH net v2] vhost: fix a theoretical race in device cleanup
...ruct ubuf_info *ubuf, bool success) */ if (cnt <= 1 || !(cnt % 16)) vhost_poll_queue(&vq->poll); + + rcu_read_unlock_bh(); } /* Expects to be always run from workqueue - which acts as @@ -804,6 +808,8 @@ static int vhost_net_release(struct inode *inode, struct file *f) fput(tx_sock->file); if (rx_sock) fput(rx_sock->file); + /* Make sure no callbacks are outstanding */ + synchronize_rcu_bh(); /* We do an extra flush before freeing memory, * since jobs can re-queue themselves. */ vhost_net_flush(n); -- MST
2014 Feb 13
2
[PATCH net v2] vhost: fix a theoretical race in device cleanup
...ruct ubuf_info *ubuf, bool success) */ if (cnt <= 1 || !(cnt % 16)) vhost_poll_queue(&vq->poll); + + rcu_read_unlock_bh(); } /* Expects to be always run from workqueue - which acts as @@ -804,6 +808,8 @@ static int vhost_net_release(struct inode *inode, struct file *f) fput(tx_sock->file); if (rx_sock) fput(rx_sock->file); + /* Make sure no callbacks are outstanding */ + synchronize_rcu_bh(); /* We do an extra flush before freeing memory, * since jobs can re-queue themselves. */ vhost_net_flush(n); -- MST
2009 Nov 04
1
[PATCHv8 3/3] vhost_net: a kernel-level virtio server
...x_lock(&n->vqs[index].mutex); + sock = n->vqs[index].private_data; + vhost_net_disable_vq(n, index); + rcu_assign_pointer(n->vqs[index].private_data, NULL); + mutex_unlock(&n->vqs[index].mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_TX); + *rx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n->poll + index); + vhost_poll_flush(&n->dev.vqs[index].po...
2009 Nov 04
1
[PATCHv8 3/3] vhost_net: a kernel-level virtio server
...x_lock(&n->vqs[index].mutex); + sock = n->vqs[index].private_data; + vhost_net_disable_vq(n, index); + rcu_assign_pointer(n->vqs[index].private_data, NULL); + mutex_unlock(&n->vqs[index].mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_TX); + *rx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n->poll + index); + vhost_poll_flush(&n->dev.vqs[index].po...
2009 Nov 09
3
[PATCHv9 3/3] vhost_net: a kernel-level virtio server
...eue *vq) +{ + struct socket *sock; + + mutex_lock(&vq->mutex); + sock = vq->private_data; + vhost_net_disable_vq(n, vq); + rcu_assign_pointer(vq->private_data, NULL); + mutex_unlock(&vq->mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock = vhost_net_stop_vq(n, n->vqs + VHOST_NET_VQ_TX); + *rx_sock = vhost_net_stop_vq(n, n->vqs + VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n->poll + index); + vhost_poll_flush(&amp...
2009 Nov 09
3
[PATCHv9 3/3] vhost_net: a kernel-level virtio server
...eue *vq) +{ + struct socket *sock; + + mutex_lock(&vq->mutex); + sock = vq->private_data; + vhost_net_disable_vq(n, vq); + rcu_assign_pointer(vq->private_data, NULL); + mutex_unlock(&vq->mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock = vhost_net_stop_vq(n, n->vqs + VHOST_NET_VQ_TX); + *rx_sock = vhost_net_stop_vq(n, n->vqs + VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n->poll + index); + vhost_poll_flush(&amp...
2009 Nov 17
0
No subject
...mutex_lock(&vq->mutex); + sock =3D vq->private_data; + vhost_net_disable_vq(n, vq); + rcu_assign_pointer(vq->private_data, NULL); + mutex_unlock(&vq->mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock =3D vhost_net_stop_vq(n, n->vqs + VHOST_NET_VQ_TX); + *rx_sock =3D vhost_net_stop_vq(n, n->vqs + VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n-...
2009 Nov 17
0
No subject
...mutex_lock(&vq->mutex); + sock =3D vq->private_data; + vhost_net_disable_vq(n, vq); + rcu_assign_pointer(vq->private_data, NULL); + mutex_unlock(&vq->mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock =3D vhost_net_stop_vq(n, n->vqs + VHOST_NET_VQ_TX); + *rx_sock =3D vhost_net_stop_vq(n, n->vqs + VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n-...
2009 Nov 03
11
[PATCHv7 3/3] vhost_net: a kernel-level virtio server
...x_lock(&n->vqs[index].mutex); + sock = n->vqs[index].private_data; + vhost_net_disable_vq(n, index); + rcu_assign_pointer(n->vqs[index].private_data, NULL); + mutex_unlock(&n->vqs[index].mutex); + return sock; +} + +static void vhost_net_stop(struct vhost_net *n, struct socket **tx_sock, + struct socket **rx_sock) +{ + *tx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_TX); + *rx_sock = vhost_net_stop_vq(n, VHOST_NET_VQ_RX); +} + +static void vhost_net_flush_vq(struct vhost_net *n, int index) +{ + vhost_poll_flush(n->poll + index); + vhost_poll_flush(&n->dev.vqs[index].po...