Displaying 20 results from an estimated 161 matches for "vhost_poll_flush".
2020 Sep 22
0
[PATCH 7/8] vhost: remove work arg from vhost_work_flush
...ion(&flush.wait_event);
> }
> }
> -EXPORT_SYMBOL_GPL(vhost_work_flush);
> +EXPORT_SYMBOL_GPL(vhost_work_dev_flush);
>
> /* Flush any work that has been scheduled. When calling this, don't hold any
> * locks that are also used by the callback. */
> void vhost_poll_flush(struct vhost_poll *poll)
> {
> - vhost_work_flush(poll->dev, &poll->work);
> + vhost_work_dev_flush(poll->dev);
> }
> EXPORT_SYMBOL_GPL(vhost_poll_flush);
>
> @@ -542,7 +542,7 @@ static int vhost_attach_cgroups(struct vhost_dev *dev)
> attach.owner =...
2015 Dec 08
2
[PATCH] vhost: vsock: select CONFIG_VHOST
When building the new vsock code without vhost, we get a build error:
drivers/built-in.o: In function `vhost_vsock_flush':
:(.text+0x24d29c): undefined reference to `vhost_poll_flush'
This adds an explicit 'select' like we have for the other vhost
drivers.
Signed-off-by: Arnd Bergmann <arnd at arndb.de>
---
drivers/vhost/Kconfig.vsock | 2 ++
1 file changed, 2 insertions(+)
The patch causing the problem is currently in net-next, so the fix should be
applie...
2015 Dec 08
2
[PATCH] vhost: vsock: select CONFIG_VHOST
When building the new vsock code without vhost, we get a build error:
drivers/built-in.o: In function `vhost_vsock_flush':
:(.text+0x24d29c): undefined reference to `vhost_poll_flush'
This adds an explicit 'select' like we have for the other vhost
drivers.
Signed-off-by: Arnd Bergmann <arnd at arndb.de>
---
drivers/vhost/Kconfig.vsock | 2 ++
1 file changed, 2 insertions(+)
The patch causing the problem is currently in net-next, so the fix should be
applie...
2013 May 08
1
[PATCH v2] vhost-test: Make vhost/test.c work
...vhost_test *n,
static void vhost_test_stop(struct vhost_test *n, void **privatep)
{
- *privatep = vhost_test_stop_vq(n, n->vqs + VHOST_TEST_VQ);
+ *privatep = vhost_test_stop_vq(n, &n->vqs[VHOST_TEST_VQ].vq);
}
static void vhost_test_flush_vq(struct vhost_test *n, int index)
{
- vhost_poll_flush(&n->dev.vqs[index].poll);
+ vhost_poll_flush(&n->vqs[index].vq.poll);
}
static void vhost_test_flush(struct vhost_test *n)
@@ -159,6 +171,7 @@ static int vhost_test_release(struct inode *inode, struct file *f)
/* We do an extra flush before freeing memory,
* since jobs can re...
2013 May 08
1
[PATCH v2] vhost-test: Make vhost/test.c work
...vhost_test *n,
static void vhost_test_stop(struct vhost_test *n, void **privatep)
{
- *privatep = vhost_test_stop_vq(n, n->vqs + VHOST_TEST_VQ);
+ *privatep = vhost_test_stop_vq(n, &n->vqs[VHOST_TEST_VQ].vq);
}
static void vhost_test_flush_vq(struct vhost_test *n, int index)
{
- vhost_poll_flush(&n->dev.vqs[index].poll);
+ vhost_poll_flush(&n->vqs[index].vq.poll);
}
static void vhost_test_flush(struct vhost_test *n)
@@ -159,6 +171,7 @@ static int vhost_test_release(struct inode *inode, struct file *f)
/* We do an extra flush before freeing memory,
* since jobs can re...
2013 Jul 07
2
[PATCH v2 03/11] vhost: Make vhost a separate module
...g < 0);
> > > }
> > > +EXPORT_SYMBOL_GPL(vhost_work_flush);
> > >
> > > /* Flush any work that has been scheduled. When calling this, don't hold any
> > > * locks that are also used by the callback. */
> > > @@ -145,6 +151,7 @@ void vhost_poll_flush(struct vhost_poll *poll)
> > > {
> > > vhost_work_flush(poll->dev, &poll->work);
> > > }
> > > +EXPORT_SYMBOL_GPL(vhost_poll_flush);
> > >
> > > void vhost_work_queue(struct vhost_dev *dev, struct vhost_work *work)
> > >...
2013 Jul 07
2
[PATCH v2 03/11] vhost: Make vhost a separate module
...g < 0);
> > > }
> > > +EXPORT_SYMBOL_GPL(vhost_work_flush);
> > >
> > > /* Flush any work that has been scheduled. When calling this, don't hold any
> > > * locks that are also used by the callback. */
> > > @@ -145,6 +151,7 @@ void vhost_poll_flush(struct vhost_poll *poll)
> > > {
> > > vhost_work_flush(poll->dev, &poll->work);
> > > }
> > > +EXPORT_SYMBOL_GPL(vhost_poll_flush);
> > >
> > > void vhost_work_queue(struct vhost_dev *dev, struct vhost_work *work)
> > >...
2013 May 07
1
[PATCH] vhost-test: Make vhost/test.c work
...vhost_test *n,
static void vhost_test_stop(struct vhost_test *n, void **privatep)
{
- *privatep = vhost_test_stop_vq(n, n->vqs + VHOST_TEST_VQ);
+ *privatep = vhost_test_stop_vq(n, &n->vqs[VHOST_TEST_VQ].vq);
}
static void vhost_test_flush_vq(struct vhost_test *n, int index)
{
- vhost_poll_flush(&n->dev.vqs[index].poll);
+ vhost_poll_flush(&n->vqs[index].vq.poll);
}
static void vhost_test_flush(struct vhost_test *n)
@@ -159,6 +171,7 @@ static int vhost_test_release(struct inode *inode, struct file *f)
/* We do an extra flush before freeing memory,
* since jobs can re...
2013 May 07
1
[PATCH] vhost-test: Make vhost/test.c work
...vhost_test *n,
static void vhost_test_stop(struct vhost_test *n, void **privatep)
{
- *privatep = vhost_test_stop_vq(n, n->vqs + VHOST_TEST_VQ);
+ *privatep = vhost_test_stop_vq(n, &n->vqs[VHOST_TEST_VQ].vq);
}
static void vhost_test_flush_vq(struct vhost_test *n, int index)
{
- vhost_poll_flush(&n->dev.vqs[index].poll);
+ vhost_poll_flush(&n->vqs[index].vq.poll);
}
static void vhost_test_flush(struct vhost_test *n)
@@ -159,6 +171,7 @@ static int vhost_test_release(struct inode *inode, struct file *f)
/* We do an extra flush before freeing memory,
* since jobs can re...
2009 Aug 11
2
[PATCHv2 2/2] vhost_net: a kernel-level virtio server
...(n->poll + VHOST_NET_VQ_TX, handle_tx_net, POLLOUT);
+ vhost_poll_init(n->poll + VHOST_NET_VQ_RX, handle_rx_net, POLLIN);
+ return 0;
+}
+
+static struct socket *vhost_net_stop(struct vhost_net *n)
+{
+ struct socket *sock = n->sock;
+ rcu_assign_pointer(n->sock, NULL);
+ if (sock) {
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_TX);
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_RX);
+ }
+ return sock;
+}
+
+static int vhost_net_release(struct inode *inode, struct file *f)
+{
+ struct vhost_net *n = f->private_data;
+ struct socket *sock;
+
+ sock = vhost_net_stop(n);
+ vhost_dev_cleanup(&n...
2009 Aug 11
2
[PATCHv2 2/2] vhost_net: a kernel-level virtio server
...(n->poll + VHOST_NET_VQ_TX, handle_tx_net, POLLOUT);
+ vhost_poll_init(n->poll + VHOST_NET_VQ_RX, handle_rx_net, POLLIN);
+ return 0;
+}
+
+static struct socket *vhost_net_stop(struct vhost_net *n)
+{
+ struct socket *sock = n->sock;
+ rcu_assign_pointer(n->sock, NULL);
+ if (sock) {
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_TX);
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_RX);
+ }
+ return sock;
+}
+
+static int vhost_net_release(struct inode *inode, struct file *f)
+{
+ struct vhost_net *n = f->private_data;
+ struct socket *sock;
+
+ sock = vhost_net_stop(n);
+ vhost_dev_cleanup(&n...
2013 Apr 27
2
[PATCH v6 0/2] tcm_vhost flush
Changes in v6:
- Allow device specific fields per vq
- Track cmd per vq
- Do not track evt
- Switch to static array for inflight allocation, completely get rid of the
pain to handle inflight allocation failure.
Asias He (2):
vhost: Allow device specific fields per vq
tcm_vhost: Wait for pending requests in vhost_scsi_flush()
drivers/vhost/net.c | 60 +++++++++++--------
2013 Apr 27
2
[PATCH v6 0/2] tcm_vhost flush
Changes in v6:
- Allow device specific fields per vq
- Track cmd per vq
- Do not track evt
- Switch to static array for inflight allocation, completely get rid of the
pain to handle inflight allocation failure.
Asias He (2):
vhost: Allow device specific fields per vq
tcm_vhost: Wait for pending requests in vhost_scsi_flush()
drivers/vhost/net.c | 60 +++++++++++--------
2013 Jul 07
0
[PATCH v2 03/11] vhost: Make vhost a separate module
...}
> > > > +EXPORT_SYMBOL_GPL(vhost_work_flush);
> > > >
> > > > /* Flush any work that has been scheduled. When calling this, don't hold any
> > > > * locks that are also used by the callback. */
> > > > @@ -145,6 +151,7 @@ void vhost_poll_flush(struct vhost_poll *poll)
> > > > {
> > > > vhost_work_flush(poll->dev, &poll->work);
> > > > }
> > > > +EXPORT_SYMBOL_GPL(vhost_poll_flush);
> > > >
> > > > void vhost_work_queue(struct vhost_dev *dev, struct v...
2009 Aug 27
5
[PATCHv5 3/3] vhost_net: a kernel-level virtio server
...(n->poll + VHOST_NET_VQ_TX, handle_tx_net, POLLOUT);
+ vhost_poll_init(n->poll + VHOST_NET_VQ_RX, handle_rx_net, POLLIN);
+ return 0;
+}
+
+static struct socket *vhost_net_stop(struct vhost_net *n)
+{
+ struct socket *sock = n->sock;
+ rcu_assign_pointer(n->sock, NULL);
+ if (sock) {
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_TX);
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_RX);
+ }
+ return sock;
+}
+
+static int vhost_net_release(struct inode *inode, struct file *f)
+{
+ struct vhost_net *n = f->private_data;
+ struct socket *sock;
+
+ sock = vhost_net_stop(n);
+ vhost_dev_cleanup(&n...
2009 Aug 27
5
[PATCHv5 3/3] vhost_net: a kernel-level virtio server
...(n->poll + VHOST_NET_VQ_TX, handle_tx_net, POLLOUT);
+ vhost_poll_init(n->poll + VHOST_NET_VQ_RX, handle_rx_net, POLLIN);
+ return 0;
+}
+
+static struct socket *vhost_net_stop(struct vhost_net *n)
+{
+ struct socket *sock = n->sock;
+ rcu_assign_pointer(n->sock, NULL);
+ if (sock) {
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_TX);
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_RX);
+ }
+ return sock;
+}
+
+static int vhost_net_release(struct inode *inode, struct file *f)
+{
+ struct vhost_net *n = f->private_data;
+ struct socket *sock;
+
+ sock = vhost_net_stop(n);
+ vhost_dev_cleanup(&n...
2013 May 03
4
[PATCH 0/3] vhost cleanups and separate module
Asias He (3):
vhost: Remove vhost_enable_zcopy in vhost.h
vhost: Move VHOST_NET_FEATURES to net.c
vhost: Make vhost a separate module
drivers/vhost/Kconfig | 8 ++++++++
drivers/vhost/Makefile | 3 ++-
drivers/vhost/net.c | 6 ++++++
drivers/vhost/scsi.c | 1 -
drivers/vhost/vhost.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
drivers/vhost/vhost.h | 8 ++------
6
2013 May 03
4
[PATCH 0/3] vhost cleanups and separate module
Asias He (3):
vhost: Remove vhost_enable_zcopy in vhost.h
vhost: Move VHOST_NET_FEATURES to net.c
vhost: Make vhost a separate module
drivers/vhost/Kconfig | 8 ++++++++
drivers/vhost/Makefile | 3 ++-
drivers/vhost/net.c | 6 ++++++
drivers/vhost/scsi.c | 1 -
drivers/vhost/vhost.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
drivers/vhost/vhost.h | 8 ++------
6
2009 Aug 13
1
[PATCHv3 2/2] vhost_net: a kernel-level virtio server
...(n->poll + VHOST_NET_VQ_TX, handle_tx_net, POLLOUT);
+ vhost_poll_init(n->poll + VHOST_NET_VQ_RX, handle_rx_net, POLLIN);
+ return 0;
+}
+
+static struct socket *vhost_net_stop(struct vhost_net *n)
+{
+ struct socket *sock = n->sock;
+ rcu_assign_pointer(n->sock, NULL);
+ if (sock) {
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_TX);
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_RX);
+ }
+ return sock;
+}
+
+static int vhost_net_release(struct inode *inode, struct file *f)
+{
+ struct vhost_net *n = f->private_data;
+ struct socket *sock;
+
+ sock = vhost_net_stop(n);
+ vhost_dev_cleanup(&n...
2009 Aug 13
1
[PATCHv3 2/2] vhost_net: a kernel-level virtio server
...(n->poll + VHOST_NET_VQ_TX, handle_tx_net, POLLOUT);
+ vhost_poll_init(n->poll + VHOST_NET_VQ_RX, handle_rx_net, POLLIN);
+ return 0;
+}
+
+static struct socket *vhost_net_stop(struct vhost_net *n)
+{
+ struct socket *sock = n->sock;
+ rcu_assign_pointer(n->sock, NULL);
+ if (sock) {
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_TX);
+ vhost_poll_flush(n->poll + VHOST_NET_VQ_RX);
+ }
+ return sock;
+}
+
+static int vhost_net_release(struct inode *inode, struct file *f)
+{
+ struct vhost_net *n = f->private_data;
+ struct socket *sock;
+
+ sock = vhost_net_stop(n);
+ vhost_dev_cleanup(&n...