From: "Michael S. Tsirkin" <mst@redhat.com> To: linux-kernel@vger.kernel.org Cc: David Miller <davem@davemloft.net>, cornelia.huck@de.ibm.com, rusty@au1.ibm.com, nab@linux-iscsi.org, pbonzini@redhat.com, thuth@linux.vnet.ibm.com, dahi@linux.vnet.ibm.com, Rusty Russell <rusty@rustcorp.com.au>, Pawel Moll <pawel.moll@arm.com>, virtualization@lists.linux-foundation.org Subject: [PATCH v5 10/45] virtio: allow transports to get avail/used addresses Date: Thu, 27 Nov 2014 14:30:55 +0200 [thread overview] Message-ID: <1417091078-24611-11-git-send-email-mst@redhat.com> (raw) In-Reply-To: <1417091078-24611-1-git-send-email-mst@redhat.com> From: Cornelia Huck <cornelia.huck@de.ibm.com> For virtio-1, we can theoretically have a more complex virtqueue layout with avail and used buffers not on a contiguous memory area with the descriptor table. For now, it's fine for a transport driver to stay with the old layout: It needs, however, a way to access the locations of the avail/used rings so it can register them with the host. Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- include/linux/virtio.h | 3 +++ drivers/virtio/virtio_ring.c | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 149284e..d6359a5 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h @@ -75,6 +75,9 @@ unsigned int virtqueue_get_vring_size(struct virtqueue *vq); bool virtqueue_is_broken(struct virtqueue *vq); +void *virtqueue_get_avail(struct virtqueue *vq); +void *virtqueue_get_used(struct virtqueue *vq); + /** * virtio_device - representation of a device using virtio * @index: unique position on the virtio bus diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index b311fa7..5c8aef8 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -827,4 +827,20 @@ void virtio_break_device(struct virtio_device *dev) } EXPORT_SYMBOL_GPL(virtio_break_device); +void *virtqueue_get_avail(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + return vq->vring.avail; +} +EXPORT_SYMBOL_GPL(virtqueue_get_avail); + +void *virtqueue_get_used(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + return vq->vring.used; +} +EXPORT_SYMBOL_GPL(virtqueue_get_used); + MODULE_LICENSE("GPL"); -- MST
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com> To: linux-kernel@vger.kernel.org Cc: thuth@linux.vnet.ibm.com, Pawel Moll <pawel.moll@arm.com>, rusty@au1.ibm.com, virtualization@lists.linux-foundation.org, dahi@linux.vnet.ibm.com, pbonzini@redhat.com, David Miller <davem@davemloft.net> Subject: [PATCH v5 10/45] virtio: allow transports to get avail/used addresses Date: Thu, 27 Nov 2014 14:30:55 +0200 [thread overview] Message-ID: <1417091078-24611-11-git-send-email-mst@redhat.com> (raw) In-Reply-To: <1417091078-24611-1-git-send-email-mst@redhat.com> From: Cornelia Huck <cornelia.huck@de.ibm.com> For virtio-1, we can theoretically have a more complex virtqueue layout with avail and used buffers not on a contiguous memory area with the descriptor table. For now, it's fine for a transport driver to stay with the old layout: It needs, however, a way to access the locations of the avail/used rings so it can register them with the host. Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> --- include/linux/virtio.h | 3 +++ drivers/virtio/virtio_ring.c | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/include/linux/virtio.h b/include/linux/virtio.h index 149284e..d6359a5 100644 --- a/include/linux/virtio.h +++ b/include/linux/virtio.h @@ -75,6 +75,9 @@ unsigned int virtqueue_get_vring_size(struct virtqueue *vq); bool virtqueue_is_broken(struct virtqueue *vq); +void *virtqueue_get_avail(struct virtqueue *vq); +void *virtqueue_get_used(struct virtqueue *vq); + /** * virtio_device - representation of a device using virtio * @index: unique position on the virtio bus diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index b311fa7..5c8aef8 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -827,4 +827,20 @@ void virtio_break_device(struct virtio_device *dev) } EXPORT_SYMBOL_GPL(virtio_break_device); +void *virtqueue_get_avail(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + return vq->vring.avail; +} +EXPORT_SYMBOL_GPL(virtqueue_get_avail); + +void *virtqueue_get_used(struct virtqueue *_vq) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + return vq->vring.used; +} +EXPORT_SYMBOL_GPL(virtqueue_get_used); + MODULE_LICENSE("GPL"); -- MST
next prev parent reply other threads:[~2014-11-27 12:44 UTC|newest] Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-11-27 12:29 [PATCH v5 00/45] linux: towards virtio-1 guest support Michael S. Tsirkin 2014-11-27 12:29 ` [PATCH v5 01/45] virtio: use u32, not bitmap for struct virtio_device's features Michael S. Tsirkin 2014-11-27 12:29 ` Michael S. Tsirkin 2014-11-27 16:15 ` David Hildenbrand 2014-11-27 16:15 ` David Hildenbrand 2014-11-27 16:28 ` Michael S. Tsirkin 2014-11-27 16:28 ` Michael S. Tsirkin 2014-11-27 16:34 ` David Hildenbrand 2014-11-27 16:34 ` David Hildenbrand 2014-11-27 12:30 ` [PATCH v5 02/45] mic_virtio: robust feature array size calculation Michael S. Tsirkin 2014-11-27 12:30 ` [PATCH v5 03/45] virtio: add support for 64 bit features Michael S. Tsirkin 2014-11-27 12:30 ` Michael S. Tsirkin 2014-11-27 12:30 ` [PATCH v5 04/45] virtio: assert 32 bit features in transports Michael S. Tsirkin 2014-11-27 12:30 ` Michael S. Tsirkin 2014-11-27 12:30 ` [PATCH v5 05/45] virtio_ccw: add support for 64 bit features Michael S. Tsirkin 2014-11-27 12:30 ` [PATCH v5 06/45] virtio: add virtio 1.0 feature bit Michael S. Tsirkin 2014-11-27 12:30 ` Michael S. Tsirkin 2014-11-27 12:30 ` [PATCH v5 07/45] virtio: memory access APIs Michael S. Tsirkin 2014-11-27 12:30 ` Michael S. Tsirkin 2014-11-27 12:30 ` [PATCH v5 08/45] virtio_ring: switch to new " Michael S. Tsirkin 2014-11-27 12:30 ` Michael S. Tsirkin 2014-11-27 12:30 ` [PATCH v5 09/45] virtio_config: endian conversion for v1.0 Michael S. Tsirkin 2014-11-27 12:30 ` Michael S. Tsirkin 2014-11-27 12:30 ` Michael S. Tsirkin [this message] 2014-11-27 12:30 ` [PATCH v5 10/45] virtio: allow transports to get avail/used addresses Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 11/45] virtio: set FEATURES_OK Michael S. Tsirkin 2014-11-27 12:31 ` Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 12/45] virtio: simplify feature bit handling Michael S. Tsirkin 2014-11-27 12:31 ` Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 13/45] virtio: add legacy feature table support Michael S. Tsirkin 2014-11-27 12:31 ` Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 14/45] virtio_net: v1.0 endianness Michael S. Tsirkin 2014-11-27 12:31 ` Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 15/45] virtio_blk: v1.0 support Michael S. Tsirkin 2014-11-27 12:31 ` Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 16/45] KVM: s390: Set virtio-ccw transport revision Michael S. Tsirkin 2014-11-27 16:01 ` David Hildenbrand 2014-11-27 12:31 ` [PATCH v5 17/45] KVM: s390: virtio-ccw revision 1 SET_VQ Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 18/45] KVM: s390 allow virtio_ccw status writes to fail Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 19/45] KVM: s390: enable virtio-ccw revision 1 Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 20/45] virtio_blk: make serial attribute static Michael S. Tsirkin 2014-11-27 12:31 ` Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 21/45] virtio_blk: fix race at module removal Michael S. Tsirkin 2014-11-27 12:31 ` Michael S. Tsirkin 2014-11-27 12:31 ` [PATCH v5 22/45] virtio_net: pass vi around Michael S. Tsirkin 2014-11-27 12:31 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 23/45] virtio_net: get rid of virtio_net_hdr/skb_vnet_hdr Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 24/45] virtio_net: stricter short buffer length checks Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 25/45] virtio_net: bigger header when VERSION_1 is set Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 26/45] virtio_net: enable v1.0 support Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 27/45] vhost: make features 64 bit Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 28/45] vhost: add memory access wrappers Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 29/45] vhost/net: force len for TX to host endian Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 30/45] vhost: virtio 1.0 endian-ness support Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 31/45] vhost/net: virtio 1.0 byte swap Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 32/45] vhost/net: larger header for virtio 1.0 Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 33/45] virtio_net: disable mac write " Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 34/45] vhost/net: enable " Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:32 ` [PATCH v5 35/45] vhost/net: suppress compiler warning Michael S. Tsirkin 2014-11-27 12:32 ` Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 36/45] tun: move internal flag defines out of uapi Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 37/45] tun: drop most type defines Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 38/45] tun: add VNET_LE flag Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 39/45] tun: TUN_VNET_LE support, fix sparse warnings for virtio headers Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 40/45] macvtap: TUN_VNET_HDR support Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 41/45] virtio_scsi: v1.0 support Michael S. Tsirkin 2014-11-27 12:33 ` Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 42/45] virtio_scsi: move to uapi Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 43/45] virtio_scsi: export to userspace Michael S. Tsirkin 2014-11-27 12:33 ` Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 44/45] vhost/scsi: partial virtio 1.0 support Michael S. Tsirkin 2014-11-27 12:33 ` Michael S. Tsirkin 2014-11-27 12:33 ` [PATCH v5 45/45] af_packet: virtio 1.0 stubs Michael S. Tsirkin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1417091078-24611-11-git-send-email-mst@redhat.com \ --to=mst@redhat.com \ --cc=cornelia.huck@de.ibm.com \ --cc=dahi@linux.vnet.ibm.com \ --cc=davem@davemloft.net \ --cc=linux-kernel@vger.kernel.org \ --cc=nab@linux-iscsi.org \ --cc=pawel.moll@arm.com \ --cc=pbonzini@redhat.com \ --cc=rusty@au1.ibm.com \ --cc=rusty@rustcorp.com.au \ --cc=thuth@linux.vnet.ibm.com \ --cc=virtualization@lists.linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.