lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 19 Aug 2020 18:19:41 -0400 From: Vivek Goyal <vgoyal@...hat.com> To: linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org, linux-nvdimm@...ts.01.org, virtio-fs@...hat.com Cc: vgoyal@...hat.com, miklos@...redi.hu, stefanha@...hat.com, dgilbert@...hat.com, dan.j.williams@...el.com, Sebastien Boeuf <sebastien.boeuf@...el.com>, "Michael S . Tsirkin" <mst@...hat.com>, kvm@...r.kernel.org, virtualization@...ts.linux-foundation.org Subject: [PATCH v3 03/18] virtio: Add get_shm_region method From: Sebastien Boeuf <sebastien.boeuf@...el.com> Virtio defines 'shared memory regions' that provide a continuously shared region between the host and guest. Provide a method to find a particular region on a device. Signed-off-by: Sebastien Boeuf <sebastien.boeuf@...el.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@...hat.com> Acked-by: Michael S. Tsirkin <mst@...hat.com> Cc: kvm@...r.kernel.org Cc: virtualization@...ts.linux-foundation.org Cc: "Michael S. Tsirkin" <mst@...hat.com> --- include/linux/virtio_config.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index 8fe857e27ef3..4b8e38c5c4d8 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h @@ -11,6 +11,11 @@ struct irq_affinity; +struct virtio_shm_region { + u64 addr; + u64 len; +}; + /** * virtio_config_ops - operations for configuring a virtio device * Note: Do not assume that a transport implements all of the operations @@ -66,6 +71,7 @@ struct irq_affinity; * the caller can then copy. * @set_vq_affinity: set the affinity for a virtqueue (optional). * @get_vq_affinity: get the affinity for a virtqueue (optional). + * @get_shm_region: get a shared memory region based on the index. */ typedef void vq_callback_t(struct virtqueue *); struct virtio_config_ops { @@ -89,6 +95,8 @@ struct virtio_config_ops { const struct cpumask *cpu_mask); const struct cpumask *(*get_vq_affinity)(struct virtio_device *vdev, int index); + bool (*get_shm_region)(struct virtio_device *vdev, + struct virtio_shm_region *region, u8 id); }; /* If driver didn't advertise the feature, it will never appear. */ @@ -251,6 +259,15 @@ int virtqueue_set_affinity(struct virtqueue *vq, const struct cpumask *cpu_mask) return 0; } +static inline +bool virtio_get_shm_region(struct virtio_device *vdev, + struct virtio_shm_region *region, u8 id) +{ + if (!vdev->config->get_shm_region) + return false; + return vdev->config->get_shm_region(vdev, region, id); +} + static inline bool virtio_is_little_endian(struct virtio_device *vdev) { return virtio_has_feature(vdev, VIRTIO_F_VERSION_1) || -- 2.25.4
Powered by blists - more mailing lists