All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org
Cc: KONRAD Frederic <fred.konrad@greensocs.com>,
	David Gibson <david@gibson.dropbear.id.au>,
	kvmarm@lists.cs.columbia.edu, Alexander Graf <agraf@suse.de>,
	patches@linaro.org
Subject: Re: [Qemu-devel] [PATCH 3/8] virtio: Add support for guest setting of queue size
Date: Mon, 08 Jul 2013 14:39:27 -0500	[thread overview]
Message-ID: <87txk4c040.fsf@codemonkey.ws> (raw)
In-Reply-To: <1372338255-3934-4-git-send-email-peter.maydell@linaro.org>

Peter Maydell <peter.maydell@linaro.org> writes:

> The MMIO virtio transport spec allows the guest to tell the host how
> large the queue size is. Add virtio_queue_set_num() function which
> implements this in the QEMU common virtio support code.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  hw/virtio/virtio.c         |    6 ++++++
>  include/hw/virtio/virtio.h |    1 +
>  2 files changed, 7 insertions(+)
>
> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
> index 8176c14..8805b8a 100644
> --- a/hw/virtio/virtio.c
> +++ b/hw/virtio/virtio.c
> @@ -667,6 +667,12 @@ hwaddr virtio_queue_get_addr(VirtIODevice *vdev, int n)
>      return vdev->vq[n].pa;
>  }
>  
> +void virtio_queue_set_num(VirtIODevice *vdev, int n, int num)
> +{
> +    vdev->vq[n].vring.num = num;
> +    virtqueue_init(&vdev->vq[n]);

I think some level of checking is probably needed on num since we do a
tremendous amount of math on it.  I doubt it's exploitable since it's
always treated as a PA, but better to be safe than sorry.

Regards,

Anthony Liguori

> +}
> +
>  int virtio_queue_get_num(VirtIODevice *vdev, int n)
>  {
>      return vdev->vq[n].vring.num;
> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
> index a6c5c53..95c4772 100644
> --- a/include/hw/virtio/virtio.h
> +++ b/include/hw/virtio/virtio.h
> @@ -198,6 +198,7 @@ void virtio_config_writew(VirtIODevice *vdev, uint32_t addr, uint32_t data);
>  void virtio_config_writel(VirtIODevice *vdev, uint32_t addr, uint32_t data);
>  void virtio_queue_set_addr(VirtIODevice *vdev, int n, hwaddr addr);
>  hwaddr virtio_queue_get_addr(VirtIODevice *vdev, int n);
> +void virtio_queue_set_num(VirtIODevice *vdev, int n, int num);
>  int virtio_queue_get_num(VirtIODevice *vdev, int n);
>  void virtio_queue_notify(VirtIODevice *vdev, int n);
>  uint16_t virtio_queue_vector(VirtIODevice *vdev, int n);
> -- 
> 1.7.9.5

  reply	other threads:[~2013-07-08 19:44 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-27 13:04 [Qemu-devel] [PATCH 0/8] Add virtio-mmio and use it in vexpress Peter Maydell
2013-06-27 13:04 ` [Qemu-devel] [PATCH 1/8] device_tree: Add qemu_devtree_setprop_sized_cells() utility functions Peter Maydell
2013-06-27 13:04 ` [Qemu-devel] [PATCH 2/8] arm/boot: Use qemu_devtree_setprop_sized_cells() Peter Maydell
2013-06-27 13:04 ` [Qemu-devel] [PATCH 3/8] virtio: Add support for guest setting of queue size Peter Maydell
2013-07-08 19:39   ` Anthony Liguori [this message]
2013-07-09  8:27     ` Peter Maydell
2013-06-27 13:04 ` [Qemu-devel] [PATCH 4/8] virtio: Support transports which can specify the vring alignment Peter Maydell
2013-06-27 13:04 ` [Qemu-devel] [PATCH 5/8] virtio: Implement MMIO based virtio transport Peter Maydell
2013-07-08 19:52   ` Anthony Liguori
2013-06-27 13:04 ` [Qemu-devel] [PATCH 6/8] arm/boot: Allow boards to modify the FDT blob Peter Maydell
2013-06-27 13:04 ` [Qemu-devel] [PATCH 7/8] vexpress: Make VEDBoardInfo extend arm_boot_info Peter Maydell
2013-06-27 13:04 ` [Qemu-devel] [PATCH 8/8] vexpress: Add virtio-mmio transports Peter Maydell
2013-07-08 12:57 ` [Qemu-devel] [PATCH 0/8] Add virtio-mmio and use it in vexpress Alexander Graf
2013-07-08 12:59   ` Alexander Graf
2013-07-08 13:08     ` Peter Maydell
2013-07-08 13:16       ` Alexander Graf
2013-07-08 13:23         ` Peter Maydell
2013-07-08 13:45           ` Alexander Graf
2013-07-08 14:06             ` Peter Maydell
2013-07-08 20:08               ` Anthony Liguori
2013-07-08 20:47                 ` Alexander Graf
2013-07-08 21:06                   ` Anthony Liguori
2013-07-09  9:28                     ` Andreas Färber
2013-07-10 10:56                     ` Alexander Graf
2013-07-17  9:30                       ` Christoffer Dall
2013-07-17  9:34                         ` Peter Maydell
2013-07-17 12:41                           ` Anthony Liguori

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=87txk4c040.fsf@codemonkey.ws \
    --to=aliguori@us.ibm.com \
    --cc=agraf@suse.de \
    --cc=david@gibson.dropbear.id.au \
    --cc=fred.konrad@greensocs.com \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=patches@linaro.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.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: link
Be 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.