All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Greg Kurz <groug@kaod.org>,
	Cornelia Huck <cornelia.huck@de.ibm.com>
Subject: [Qemu-devel] [PULL v2 32/34] vhost: drop legacy vring layout bits
Date: Fri, 11 Nov 2016 20:11:29 +0200	[thread overview]
Message-ID: <1478887767-31980-33-git-send-email-mst@redhat.com> (raw)
In-Reply-To: <1478887767-31980-1-git-send-email-mst@redhat.com>

From: Greg Kurz <groug@kaod.org>

The legacy vring layout is not used anymore as we use the separate
mappings even for legacy devices.
This patch simply removes it.

This also fixes a bug with virtio 1 devices when the vring descriptor table
is mapped at a higher address than the used vring because the following
function may return an insanely great value:

hwaddr virtio_queue_get_ring_size(VirtIODevice *vdev, int n)
{
    return vdev->vq[n].vring.used - vdev->vq[n].vring.desc +
           virtio_queue_get_used_size(vdev, n);
}

and the mapping fails.

Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/virtio/vhost.h |  3 ---
 hw/virtio/vhost.c         | 13 -------------
 2 files changed, 16 deletions(-)

diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
index 56b567f..1fe5aad 100644
--- a/include/hw/virtio/vhost.h
+++ b/include/hw/virtio/vhost.h
@@ -20,9 +20,6 @@ struct vhost_virtqueue {
     unsigned avail_size;
     unsigned long long used_phys;
     unsigned used_size;
-    void *ring;
-    unsigned long long ring_phys;
-    unsigned ring_size;
     EventNotifier masked_notifier;
 };
 
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index d88d34a..30aee88 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -923,14 +923,6 @@ static int vhost_virtqueue_start(struct vhost_dev *dev,
         goto fail_alloc_used;
     }
 
-    vq->ring_size = s = l = virtio_queue_get_ring_size(vdev, idx);
-    vq->ring_phys = a = virtio_queue_get_ring_addr(vdev, idx);
-    vq->ring = cpu_physical_memory_map(a, &l, 1);
-    if (!vq->ring || l != s) {
-        r = -ENOMEM;
-        goto fail_alloc_ring;
-    }
-
     r = vhost_virtqueue_set_addr(dev, vq, vhost_vq_index, dev->log_enabled);
     if (r < 0) {
         r = -errno;
@@ -971,9 +963,6 @@ static int vhost_virtqueue_start(struct vhost_dev *dev,
 fail_vector:
 fail_kick:
 fail_alloc:
-    cpu_physical_memory_unmap(vq->ring, virtio_queue_get_ring_size(vdev, idx),
-                              0, 0);
-fail_alloc_ring:
     cpu_physical_memory_unmap(vq->used, virtio_queue_get_used_size(vdev, idx),
                               0, 0);
 fail_alloc_used:
@@ -1014,8 +1003,6 @@ static void vhost_virtqueue_stop(struct vhost_dev *dev,
                                                 vhost_vq_index);
     }
 
-    cpu_physical_memory_unmap(vq->ring, virtio_queue_get_ring_size(vdev, idx),
-                              0, virtio_queue_get_ring_size(vdev, idx));
     cpu_physical_memory_unmap(vq->used, virtio_queue_get_used_size(vdev, idx),
                               1, virtio_queue_get_used_size(vdev, idx));
     cpu_physical_memory_unmap(vq->avail, virtio_queue_get_avail_size(vdev, idx),
-- 
MST

  parent reply	other threads:[~2016-11-11 18:11 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-11 18:09 [Qemu-devel] [PULL v2 00/34] virtio, vhost, pc, pci: tests, documentation, fixes and cleanups Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 01/34] tests/vhost-user-bridge: remove false comment Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 02/34] tests/vhost-user-bridge: remove unnecessary dispatcher_remove Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 03/34] tests/vhost-user-bridge: indicate peer disconnected Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 04/34] tests/vhost-user-bridge: do not accept more than one connection Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 05/34] contrib: add libvhost-user Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 06/34] tests/vhost-user-bridge: use contrib/libvhost-user Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 07/34] intel_iommu: fixing source id during IOTLB hash key calculation Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 08/34] virtio: rename virtqueue_discard to virtqueue_unpop Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 09/34] virtio: make virtqueue_alloc_element static Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 10/34] virtio-crypto: tag as not hotpluggable and migration Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 11/34] intel_iommu: fix several incorrect endianess and bit fields Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 12/34] intel_iommu: fix incorrect assert Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 13/34] acpi: fix DMAR device scope for IOAPIC Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 14/34] virtio: allow per-device-class legacy features Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 15/34] virtio-net: mark VIRTIO_NET_F_GSO as legacy Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 16/34] vhost: migration blocker only if shared log is used Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 17/34] qdev: hotplug: drop HotplugHandler.post_plug callback Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 18/34] nvdimm acpi: drop the lock of fit buffer Michael S. Tsirkin
2016-11-11 18:10 ` [Qemu-devel] [PULL v2 19/34] pc: memhp: move nvdimm hotplug out of memory hotplug Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 20/34] pc: memhp: stop handling nvdimm hotplug in pc_dimm_unplug Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 21/34] nvdimm acpi: clean up nvdimm_build_acpi Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 22/34] docs: improve the doc of Read FIT method Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 23/34] nvdimm acpi: rename nvdimm_plugged_device_list Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 24/34] nvdimm acpi: cleanup nvdimm_build_fit Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 25/34] nvdimm acpi: rename nvdimm_acpi_hotplug Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 26/34] nvdimm acpi: define DSM return codes Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 27/34] nvdimm acpi: fix two comments Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 28/34] nvdimm acpi: rename nvdimm_dsm_reserved_root Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 29/34] nvdimm acpi: use aml_name_decl to define named object Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 30/34] nvdimm acpi: introduce NVDIMM_DSM_MEMORY_SIZE Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 31/34] vhost: adapt vhost_verify_ring_mappings() to virtio 1 ring layout Michael S. Tsirkin
2016-11-11 18:11 ` Michael S. Tsirkin [this message]
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 33/34] virtio: drop virtio_queue_get_ring_{size, addr}() Michael S. Tsirkin
2016-11-11 18:11 ` [Qemu-devel] [PULL v2 34/34] docs: add PCIe devices placement guidelines Michael S. Tsirkin
2016-11-14 15:52 ` [Qemu-devel] [PULL v2 00/34] virtio, vhost, pc, pci: tests, documentation, fixes and cleanups Stefan Hajnoczi
2016-11-14 23:19   ` Michael S. Tsirkin
2016-11-15 10:56     ` Stefan Hajnoczi
2016-11-17 14:16 ` no-reply
2016-11-17 16:44   ` Michael S. Tsirkin
2016-11-17 17:04     ` Fam Zheng

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=1478887767-31980-33-git-send-email-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=groug@kaod.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.