search for: vhost_vring_state

Displaying 20 results from an estimated 236 matches for "vhost_vring_state".

2015 Apr 21
2
[PATCH v4 7/8] vhost: feature to set the vring endianness
...ry __user *m) > > > return 0; > > > } > > > > > > +#ifdef CONFIG_VHOST_SET_ENDIAN_LEGACY > > > +static long vhost_set_vring_big_endian(struct vhost_virtqueue *vq, > > > + int __user *argp) > > > +{ > > > + struct vhost_vring_state s; > > > + > > > + if (vq->private_data) > > > + return -EBUSY; > > > + > > > + if (copy_from_user(&s, argp, sizeof(s))) > > > + return -EFAULT; > > > + > > > + if (s.num && s.num != 1) > > > > s.n...
2015 Apr 21
2
[PATCH v4 7/8] vhost: feature to set the vring endianness
...ry __user *m) > > > return 0; > > > } > > > > > > +#ifdef CONFIG_VHOST_SET_ENDIAN_LEGACY > > > +static long vhost_set_vring_big_endian(struct vhost_virtqueue *vq, > > > + int __user *argp) > > > +{ > > > + struct vhost_vring_state s; > > > + > > > + if (vq->private_data) > > > + return -EBUSY; > > > + > > > + if (copy_from_user(&s, argp, sizeof(s))) > > > + return -EFAULT; > > > + > > > + if (s.num && s.num != 1) > > > > s.n...
2015 Apr 07
1
[PATCH v3 7/7] vhost: feature to set the vring endianness
...Kconfig description > - renamed vq->legacy_big_endian to vq->legacy_is_little_endian > - vq->legacy_is_little_endian reset to default in vhost_vq_reset() > - dropped VHOST_F_SET_ENDIAN_LEGACY feature > - dropped struct vhost_vring_endian from the user API (re-use > struct vhost_vring_state instead) > - added VHOST_GET_VRING_ENDIAN_LEGACY ioctl > - introduced more helpers and stubs to avoid polluting the code with ifdefs > > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > index 017a1e8..0aec88c 100644 > --- a/drivers/vhost/Kconfig > +++ b/drive...
2015 Apr 07
1
[PATCH v3 7/7] vhost: feature to set the vring endianness
...Kconfig description > - renamed vq->legacy_big_endian to vq->legacy_is_little_endian > - vq->legacy_is_little_endian reset to default in vhost_vq_reset() > - dropped VHOST_F_SET_ENDIAN_LEGACY feature > - dropped struct vhost_vring_endian from the user API (re-use > struct vhost_vring_state instead) > - added VHOST_GET_VRING_ENDIAN_LEGACY ioctl > - introduced more helpers and stubs to avoid polluting the code with ifdefs > > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > index 017a1e8..0aec88c 100644 > --- a/drivers/vhost/Kconfig > +++ b/drive...
2015 Apr 07
1
[PATCH v3 7/7] vhost: feature to set the vring endianness
...Kconfig description > - renamed vq->legacy_big_endian to vq->legacy_is_little_endian > - vq->legacy_is_little_endian reset to default in vhost_vq_reset() > - dropped VHOST_F_SET_ENDIAN_LEGACY feature > - dropped struct vhost_vring_endian from the user API (re-use > struct vhost_vring_state instead) > - added VHOST_GET_VRING_ENDIAN_LEGACY ioctl > - introduced more helpers and stubs to avoid polluting the code with ifdefs > > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > index 017a1e8..0aec88c 100644 > --- a/drivers/vhost/Kconfig > +++ b/drive...
2015 Apr 07
1
[PATCH v3 7/7] vhost: feature to set the vring endianness
...Kconfig description > - renamed vq->legacy_big_endian to vq->legacy_is_little_endian > - vq->legacy_is_little_endian reset to default in vhost_vq_reset() > - dropped VHOST_F_SET_ENDIAN_LEGACY feature > - dropped struct vhost_vring_endian from the user API (re-use > struct vhost_vring_state instead) > - added VHOST_GET_VRING_ENDIAN_LEGACY ioctl > - introduced more helpers and stubs to avoid polluting the code with ifdefs > > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > index 017a1e8..0aec88c 100644 > --- a/drivers/vhost/Kconfig > +++ b/drive...
2015 Apr 24
2
[PATCH v5 7/8] vhost: cross-endian support for legacy devices
...#ifdef CONFIG_VHOST_CROSS_ENDIAN_LEGACY > +static void vhost_vq_reset_user_be(struct vhost_virtqueue *vq) > +{ > + vq->user_be = !virtio_legacy_is_little_endian(); > +} > + > +static long vhost_set_vring_endian(struct vhost_virtqueue *vq, int __user *argp) > +{ > + struct vhost_vring_state s; > + > + if (vq->private_data) > + return -EBUSY; > + > + if (copy_from_user(&s, argp, sizeof(s))) > + return -EFAULT; > + > + if (s.num != VHOST_VRING_LITTLE_ENDIAN && > + s.num != VHOST_VRING_BIG_ENDIAN) > + return -EINVAL; > + > + vq-&g...
2015 Apr 24
2
[PATCH v5 7/8] vhost: cross-endian support for legacy devices
...#ifdef CONFIG_VHOST_CROSS_ENDIAN_LEGACY > +static void vhost_vq_reset_user_be(struct vhost_virtqueue *vq) > +{ > + vq->user_be = !virtio_legacy_is_little_endian(); > +} > + > +static long vhost_set_vring_endian(struct vhost_virtqueue *vq, int __user *argp) > +{ > + struct vhost_vring_state s; > + > + if (vq->private_data) > + return -EBUSY; > + > + if (copy_from_user(&s, argp, sizeof(s))) > + return -EFAULT; > + > + if (s.num != VHOST_VRING_LITTLE_ENDIAN && > + s.num != VHOST_VRING_BIG_ENDIAN) > + return -EINVAL; > + > + vq-&g...
2015 Apr 21
2
[PATCH v4 7/8] vhost: feature to set the vring endianness
...6 +634,53 @@ static long vhost_set_memory(struct vhost_dev *d, struct vhost_memory __user *m) > return 0; > } > > +#ifdef CONFIG_VHOST_SET_ENDIAN_LEGACY > +static long vhost_set_vring_big_endian(struct vhost_virtqueue *vq, > + int __user *argp) > +{ > + struct vhost_vring_state s; > + > + if (vq->private_data) > + return -EBUSY; > + > + if (copy_from_user(&s, argp, sizeof(s))) > + return -EFAULT; > + > + if (s.num && s.num != 1) s.num & ~0x1 > + return -EINVAL; > + > + vq->user_be = s.num; > + > + return 0...
2015 Apr 21
2
[PATCH v4 7/8] vhost: feature to set the vring endianness
...6 +634,53 @@ static long vhost_set_memory(struct vhost_dev *d, struct vhost_memory __user *m) > return 0; > } > > +#ifdef CONFIG_VHOST_SET_ENDIAN_LEGACY > +static long vhost_set_vring_big_endian(struct vhost_virtqueue *vq, > + int __user *argp) > +{ > + struct vhost_vring_state s; > + > + if (vq->private_data) > + return -EBUSY; > + > + if (copy_from_user(&s, argp, sizeof(s))) > + return -EFAULT; > + > + if (s.num && s.num != 1) s.num & ~0x1 > + return -EINVAL; > + > + vq->user_be = s.num; > + > + return 0...
2015 Apr 07
0
[PATCH v3 7/7] vhost: feature to set the vring endianness
...ince v2: - fixed typos in Kconfig description - renamed vq->legacy_big_endian to vq->legacy_is_little_endian - vq->legacy_is_little_endian reset to default in vhost_vq_reset() - dropped VHOST_F_SET_ENDIAN_LEGACY feature - dropped struct vhost_vring_endian from the user API (re-use struct vhost_vring_state instead) - added VHOST_GET_VRING_ENDIAN_LEGACY ioctl - introduced more helpers and stubs to avoid polluting the code with ifdefs diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig index 017a1e8..0aec88c 100644 --- a/drivers/vhost/Kconfig +++ b/drivers/vhost/Kconfig @@ -32,3 +32,13 @@ conf...
2015 Apr 07
13
[PATCH v3 0/7] vhost: support for cross endian guests
Hi, This patchset allows vhost to be used with legacy virtio when guest and host have a different endianness. Patches 1-6 remain the same as the previous post. Patch 7 was heavily changed according to MST's comments. --- Greg Kurz (7): virtio: introduce virtio_is_little_endian() helper tun: add tun_is_little_endian() helper macvtap: introduce macvtap_is_little_endian()
2015 Apr 07
13
[PATCH v3 0/7] vhost: support for cross endian guests
Hi, This patchset allows vhost to be used with legacy virtio when guest and host have a different endianness. Patches 1-6 remain the same as the previous post. Patch 7 was heavily changed according to MST's comments. --- Greg Kurz (7): virtio: introduce virtio_is_little_endian() helper tun: add tun_is_little_endian() helper macvtap: introduce macvtap_is_little_endian()
2015 Apr 22
0
[PATCH v4 7/8] vhost: feature to set the vring endianness
...rn 0; > > > > } > > > > > > > > +#ifdef CONFIG_VHOST_SET_ENDIAN_LEGACY > > > > +static long vhost_set_vring_big_endian(struct vhost_virtqueue *vq, > > > > + int __user *argp) > > > > +{ > > > > + struct vhost_vring_state s; > > > > + > > > > + if (vq->private_data) > > > > + return -EBUSY; > > > > + > > > > + if (copy_from_user(&s, argp, sizeof(s))) > > > > + return -EFAULT; > > > > + > > > > + if (s.num &&a...
2015 Apr 10
0
[PATCH v4 7/8] vhost: feature to set the vring endianness
...ic int vhost_worker(void *data) @@ -630,6 +634,53 @@ static long vhost_set_memory(struct vhost_dev *d, struct vhost_memory __user *m) return 0; } +#ifdef CONFIG_VHOST_SET_ENDIAN_LEGACY +static long vhost_set_vring_big_endian(struct vhost_virtqueue *vq, + int __user *argp) +{ + struct vhost_vring_state s; + + if (vq->private_data) + return -EBUSY; + + if (copy_from_user(&s, argp, sizeof(s))) + return -EFAULT; + + if (s.num && s.num != 1) + return -EINVAL; + + vq->user_be = s.num; + + return 0; +} + +static long vhost_get_vring_big_endian(struct vhost_virtqueue *vq, u32 idx, +...
2015 Apr 24
0
[PATCH v5 7/8] vhost: cross-endian support for legacy devices
...> > +static void vhost_vq_reset_user_be(struct vhost_virtqueue *vq) > > +{ > > + vq->user_be = !virtio_legacy_is_little_endian(); > > +} > > + > > +static long vhost_set_vring_endian(struct vhost_virtqueue *vq, int __user *argp) > > +{ > > + struct vhost_vring_state s; > > + > > + if (vq->private_data) > > + return -EBUSY; > > + > > + if (copy_from_user(&s, argp, sizeof(s))) > > + return -EFAULT; > > + > > + if (s.num != VHOST_VRING_LITTLE_ENDIAN && > > + s.num != VHOST_VRING_BIG_ENDIAN...
2015 Apr 07
1
[PATCH v3 7/7] vhost: feature to set the vring endianness
...| 17 +++++++++++++- > include/uapi/linux/vhost.h | 5 ++++ > 4 files changed, 86 insertions(+), 1 deletion(-) > +#ifdef CONFIG_VHOST_SET_ENDIAN_LEGACY > +static long vhost_set_vring_endian_legacy(struct vhost_virtqueue *vq, > + void __user *argp) > +{ > + struct vhost_vring_state s; > + > + if (vhost_has_feature(vq, VIRTIO_F_VERSION_1)) > + return -EPERM; > + > + if (copy_from_user(&s, argp, sizeof(s))) > + return -EFAULT; > + > + vq->legacy_is_little_endian = !!s.num; > + return 0; > +} > + > +static long vhost_get_vring_endian_...
2015 Apr 07
1
[PATCH v3 7/7] vhost: feature to set the vring endianness
...| 17 +++++++++++++- > include/uapi/linux/vhost.h | 5 ++++ > 4 files changed, 86 insertions(+), 1 deletion(-) > +#ifdef CONFIG_VHOST_SET_ENDIAN_LEGACY > +static long vhost_set_vring_endian_legacy(struct vhost_virtqueue *vq, > + void __user *argp) > +{ > + struct vhost_vring_state s; > + > + if (vhost_has_feature(vq, VIRTIO_F_VERSION_1)) > + return -EPERM; > + > + if (copy_from_user(&s, argp, sizeof(s))) > + return -EFAULT; > + > + vq->legacy_is_little_endian = !!s.num; > + return 0; > +} > + > +static long vhost_get_vring_endian_...
2015 Apr 24
0
[PATCH v6 7/8] vhost: cross-endian support for legacy devices
...mp;vq->used->ring[vq->num]) +#ifdef CONFIG_VHOST_CROSS_ENDIAN_LEGACY +static void vhost_vq_reset_user_be(struct vhost_virtqueue *vq) +{ + vq->user_be = !virtio_legacy_is_little_endian(); +} + +static long vhost_set_vring_endian(struct vhost_virtqueue *vq, int __user *argp) +{ + struct vhost_vring_state s; + + if (vq->private_data) + return -EBUSY; + + if (copy_from_user(&s, argp, sizeof(s))) + return -EFAULT; + + if (s.num != VHOST_VRING_LITTLE_ENDIAN && + s.num != VHOST_VRING_BIG_ENDIAN) + return -EINVAL; + + vq->user_be = s.num; + + return 0; +} + +static long vhost_get...
2015 Apr 23
0
[PATCH v5 7/8] vhost: cross-endian support for legacy devices
...mp;vq->used->ring[vq->num]) +#ifdef CONFIG_VHOST_CROSS_ENDIAN_LEGACY +static void vhost_vq_reset_user_be(struct vhost_virtqueue *vq) +{ + vq->user_be = !virtio_legacy_is_little_endian(); +} + +static long vhost_set_vring_endian(struct vhost_virtqueue *vq, int __user *argp) +{ + struct vhost_vring_state s; + + if (vq->private_data) + return -EBUSY; + + if (copy_from_user(&s, argp, sizeof(s))) + return -EFAULT; + + if (s.num != VHOST_VRING_LITTLE_ENDIAN && + s.num != VHOST_VRING_BIG_ENDIAN) + return -EINVAL; + + vq->user_be = s.num; + + return 0; +} + +static long vhost_get...