search for: vringh_iov_xfer

Displaying 20 results from an estimated 31 matches for "vringh_iov_xfer".

2019 Oct 24
2
[PATCH net-next] vringh: fix copy direction of vringh_iov_push_kern()
...src, len); + return 0; +} + /** * vringh_init_kern - initialize a vringh for a kernelspace vring. * @vrh: the vringh to initialize. @@ -958,7 +964,7 @@ EXPORT_SYMBOL(vringh_iov_pull_kern); ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov, const void *src, size_t len) { - return vringh_iov_xfer(wiov, (void *)src, len, xfer_kern); + return vringh_iov_xfer(wiov, (void *)src, len, kern_xfer); } EXPORT_SYMBOL(vringh_iov_push_kern); -- 2.19.1
2019 Oct 24
2
[PATCH net-next] vringh: fix copy direction of vringh_iov_push_kern()
...src, len); + return 0; +} + /** * vringh_init_kern - initialize a vringh for a kernelspace vring. * @vrh: the vringh to initialize. @@ -958,7 +964,7 @@ EXPORT_SYMBOL(vringh_iov_pull_kern); ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov, const void *src, size_t len) { - return vringh_iov_xfer(wiov, (void *)src, len, xfer_kern); + return vringh_iov_xfer(wiov, (void *)src, len, kern_xfer); } EXPORT_SYMBOL(vringh_iov_push_kern); -- 2.19.1
2019 Sep 23
2
[PATCH 5/6] vringh: fix copy direction of vringh_iov_push_kern()
...t; * vringh_init_kern - initialize a vringh for a kernelspace vring. > * @vrh: the vringh to initialize. > @@ -958,7 +964,7 @@ EXPORT_SYMBOL(vringh_iov_pull_kern); > ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov, > const void *src, size_t len) > { > - return vringh_iov_xfer(wiov, (void *)src, len, xfer_kern); > + return vringh_iov_xfer(wiov, (void *)src, len, kern_xfer); > } > EXPORT_SYMBOL(vringh_iov_push_kern); >
2019 Sep 23
2
[PATCH 5/6] vringh: fix copy direction of vringh_iov_push_kern()
...t; * vringh_init_kern - initialize a vringh for a kernelspace vring. > * @vrh: the vringh to initialize. > @@ -958,7 +964,7 @@ EXPORT_SYMBOL(vringh_iov_pull_kern); > ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov, > const void *src, size_t len) > { > - return vringh_iov_xfer(wiov, (void *)src, len, xfer_kern); > + return vringh_iov_xfer(wiov, (void *)src, len, kern_xfer); > } > EXPORT_SYMBOL(vringh_iov_push_kern); >
2019 Sep 23
0
[PATCH 5/6] vringh: fix copy direction of vringh_iov_push_kern()
...src, len); + return 0; +} + /** * vringh_init_kern - initialize a vringh for a kernelspace vring. * @vrh: the vringh to initialize. @@ -958,7 +964,7 @@ EXPORT_SYMBOL(vringh_iov_pull_kern); ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov, const void *src, size_t len) { - return vringh_iov_xfer(wiov, (void *)src, len, xfer_kern); + return vringh_iov_xfer(wiov, (void *)src, len, kern_xfer); } EXPORT_SYMBOL(vringh_iov_push_kern); -- 2.19.1
2019 Sep 23
0
[PATCH 5/6] vringh: fix copy direction of vringh_iov_push_kern()
...ialize a vringh for a kernelspace vring. > > * @vrh: the vringh to initialize. > > @@ -958,7 +964,7 @@ EXPORT_SYMBOL(vringh_iov_pull_kern); > > ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov, > > const void *src, size_t len) > > { > > - return vringh_iov_xfer(wiov, (void *)src, len, xfer_kern); > > + return vringh_iov_xfer(wiov, (void *)src, len, kern_xfer); > > } > > EXPORT_SYMBOL(vringh_iov_push_kern); > >
2019 Oct 27
0
[PATCH net-next] vringh: fix copy direction of vringh_iov_push_kern()
...t; * vringh_init_kern - initialize a vringh for a kernelspace vring. > * @vrh: the vringh to initialize. > @@ -958,7 +964,7 @@ EXPORT_SYMBOL(vringh_iov_pull_kern); > ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov, > const void *src, size_t len) > { > - return vringh_iov_xfer(wiov, (void *)src, len, xfer_kern); > + return vringh_iov_xfer(wiov, (void *)src, len, kern_xfer); > } > EXPORT_SYMBOL(vringh_iov_push_kern); > > -- > 2.19.1
2019 Sep 24
1
[PATCH 5/6] vringh: fix copy direction of vringh_iov_push_kern()
...ace vring. > > > * @vrh: the vringh to initialize. > > > @@ -958,7 +964,7 @@ EXPORT_SYMBOL(vringh_iov_pull_kern); > > > ssize_t vringh_iov_push_kern(struct vringh_kiov *wiov, > > > const void *src, size_t len) > > > { > > > - return vringh_iov_xfer(wiov, (void *)src, len, xfer_kern); > > > + return vringh_iov_xfer(wiov, (void *)src, len, kern_xfer); > > > } > > > EXPORT_SYMBOL(vringh_iov_push_kern); > > >
2013 Aug 02
1
[PATCH 3/5] Intel MIC Host Driver Changes for Virtio Devices.
...goals, we are obtaining the next available descriptor via vringh_getdesc_kern(..), then triggering the copy (CPU or eventually DMA) via a custom MIC API and then publishing the descriptor via vringh_complete_kern(..). Are there any plans of enhancing VRINGH to allow overriding the xfer mechanism in vringh_iov_xfer(..)? This will allow drivers with custom xfer routines to reuse APIs like vringh_iov_push_kern(..) and vringh_iov_pull_kern(..) as well. That said, the existing VRINGH infrastructure is generic enough for our use case as is today. We will post a rev1 of the patch series using VRINGH after some mor...
2013 Aug 02
1
[PATCH 3/5] Intel MIC Host Driver Changes for Virtio Devices.
...goals, we are obtaining the next available descriptor via vringh_getdesc_kern(..), then triggering the copy (CPU or eventually DMA) via a custom MIC API and then publishing the descriptor via vringh_complete_kern(..). Are there any plans of enhancing VRINGH to allow overriding the xfer mechanism in vringh_iov_xfer(..)? This will allow drivers with custom xfer routines to reuse APIs like vringh_iov_push_kern(..) and vringh_iov_pull_kern(..) as well. That said, the existing VRINGH infrastructure is generic enough for our use case as is today. We will post a rev1 of the patch series using VRINGH after some mor...
2020 Feb 20
5
[PATCH V4 0/5] vDPA support
Hi all: This is an update version of vDPA support in kernel. vDPA device is a device that uses a datapath which complies with the virtio specifications with vendor specific control path. vDPA devices can be both physically located on the hardware or emulated by software. vDPA hardware devices are usually implemented through PCIE with the following types: - PF (Physical Function) - A single
2020 Feb 20
9
[PATCH V3 0/5] vDPA support
Hi all: This is an update version of vDPA support in kernel. vDPA device is a device that uses a datapath which complies with the virtio specifications with vendor specific control path. vDPA devices can be both physically located on the hardware or emulated by software. vDPA hardware devices are usually implemented through PCIE with the following types: - PF (Physical Function) - A single
2020 Feb 10
9
[PATCH V2 0/5] vDPA support
Hi all: This is an updated version of kernel support for vDPA device. Various changes were made based on the feedback since last verion. One major change is to drop the sysfs API and leave the management interface for future development, and introudce the incremental DMA bus operations. Please see changelog for more information. The work on vhost, IFCVF (intel VF driver for vDPA) and qemu is
2013 Jan 17
8
[PATCH 1/6] virtio_host: host-side implementation of virtio rings.
...+ } + + if (head >= vrh->vring.num) { + vringh_bad("Guest says index %u > %u is available", + head, vrh->vring.num); + return -EINVAL; + } + + (*last_avail_idx)++; + return head; +} + +/* Copy some bytes to/from the iovec. Returns num copied. */ +static inline ssize_t vringh_iov_xfer(struct vringh_iov *iov, + void *ptr, size_t len, + int (*xfer)(void __user *addr, void *ptr, + size_t len)) +{ + int err, done = 0; + + while (len && iov->i < iov->max) { + size_t partlen; + + partlen = min(iov->iov[iov->i].iov_len, len); + err = x...
2013 Jan 17
8
[PATCH 1/6] virtio_host: host-side implementation of virtio rings.
...+ } + + if (head >= vrh->vring.num) { + vringh_bad("Guest says index %u > %u is available", + head, vrh->vring.num); + return -EINVAL; + } + + (*last_avail_idx)++; + return head; +} + +/* Copy some bytes to/from the iovec. Returns num copied. */ +static inline ssize_t vringh_iov_xfer(struct vringh_iov *iov, + void *ptr, size_t len, + int (*xfer)(void __user *addr, void *ptr, + size_t len)) +{ + int err, done = 0; + + while (len && iov->i < iov->max) { + size_t partlen; + + partlen = min(iov->iov[iov->i].iov_len, len); + err = x...
2013 Feb 18
9
[PATCH 0/5] vringh
This introduces vringh, which are generic accessors for virtio rings (host side). There's a host-side implementation in vhost, but it assumes that the rings are in userspace, and is tied to the vhost implementation. I have patches to adapt it to use vringh, but I'm pushing this in the next merge window for Sjur, who has CAIF patches which need it. This also includes a test program in
2013 Feb 18
9
[PATCH 0/5] vringh
This introduces vringh, which are generic accessors for virtio rings (host side). There's a host-side implementation in vhost, but it assumes that the rings are in userspace, and is tied to the vhost implementation. I have patches to adapt it to use vringh, but I'm pushing this in the next merge window for Sjur, who has CAIF patches which need it. This also includes a test program in
2019 Sep 23
14
[PATCH 0/6] mdev based hardware virtio offloading support
Hi all: There are hardware that can do virtio datapath offloading while having its own control path. This path tries to implement a mdev based unified API to support using kernel virtio driver to drive those devices. This is done by introducing a new mdev transport for virtio (virtio_mdev) and register itself as a new kind of mdev driver. Then it provides a unified way for kernel virtio driver to
2019 Sep 23
14
[PATCH 0/6] mdev based hardware virtio offloading support
Hi all: There are hardware that can do virtio datapath offloading while having its own control path. This path tries to implement a mdev based unified API to support using kernel virtio driver to drive those devices. This is done by introducing a new mdev transport for virtio (virtio_mdev) and register itself as a new kind of mdev driver. Then it provides a unified way for kernel virtio driver to
2019 Sep 20
8
[RFC PATCH V2 0/6] mdev based hardware virtio offloading support
Hi all: There are hardware that can do virtio datapath offloading while having its own control path. This path tries to implement a mdev based unified API to support using kernel virtio driver to drive those devices. This is done by introducing a new mdev transport for virtio (virtio_mdev) and register itself as a new kind of mdev driver. Then it provides a unified way for kernel virtio driver to