All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-block@nongnu.org, Jin Yu <jin.yu@intel.com>,
	Max Reitz <mreitz@redhat.com>,
	Raphael Norwitz <raphael.norwitz@nutanix.com>
Subject: [PULL 26/38] vhost-blk: set features before setting inflight feature
Date: Tue, 3 Nov 2020 09:35:08 -0500	[thread overview]
Message-ID: <20201103142306.71782-27-mst@redhat.com> (raw)
In-Reply-To: <20201103142306.71782-1-mst@redhat.com>

From: Jin Yu <jin.yu@intel.com>

Virtqueue has split and packed, so before setting inflight,
you need to inform the back-end virtqueue format.

Signed-off-by: Jin Yu <jin.yu@intel.com>
Acked-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <20201103123617.28256-1-jin.yu@intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 include/hw/virtio/vhost.h |  1 +
 hw/block/vhost-user-blk.c |  6 ++++++
 hw/virtio/vhost.c         | 20 ++++++++++++++++++++
 3 files changed, 27 insertions(+)

diff --git a/include/hw/virtio/vhost.h b/include/hw/virtio/vhost.h
index 94585067f7..4a8bc75415 100644
--- a/include/hw/virtio/vhost.h
+++ b/include/hw/virtio/vhost.h
@@ -141,6 +141,7 @@ void vhost_dev_reset_inflight(struct vhost_inflight *inflight);
 void vhost_dev_free_inflight(struct vhost_inflight *inflight);
 void vhost_dev_save_inflight(struct vhost_inflight *inflight, QEMUFile *f);
 int vhost_dev_load_inflight(struct vhost_inflight *inflight, QEMUFile *f);
+int vhost_dev_prepare_inflight(struct vhost_dev *hdev, VirtIODevice *vdev);
 int vhost_dev_set_inflight(struct vhost_dev *dev,
                            struct vhost_inflight *inflight);
 int vhost_dev_get_inflight(struct vhost_dev *dev, uint16_t queue_size,
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index a076b1e54d..2dd3d93ca0 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -131,6 +131,12 @@ static int vhost_user_blk_start(VirtIODevice *vdev)
 
     s->dev.acked_features = vdev->guest_features;
 
+    ret = vhost_dev_prepare_inflight(&s->dev, vdev);
+    if (ret < 0) {
+        error_report("Error set inflight format: %d", -ret);
+        goto err_guest_notifiers;
+    }
+
     if (!s->inflight->addr) {
         ret = vhost_dev_get_inflight(&s->dev, s->queue_size, s->inflight);
         if (ret < 0) {
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 79b2be20df..614ccc2bcb 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -1645,6 +1645,26 @@ int vhost_dev_load_inflight(struct vhost_inflight *inflight, QEMUFile *f)
     return 0;
 }
 
+int vhost_dev_prepare_inflight(struct vhost_dev *hdev, VirtIODevice *vdev)
+{
+    int r;
+
+    if (hdev->vhost_ops->vhost_get_inflight_fd == NULL ||
+        hdev->vhost_ops->vhost_set_inflight_fd == NULL) {
+        return 0;
+    }
+
+    hdev->vdev = vdev;
+
+    r = vhost_dev_set_features(hdev, hdev->log_enabled);
+    if (r < 0) {
+        VHOST_OPS_DEBUG("vhost_dev_prepare_inflight failed");
+        return r;
+    }
+
+    return 0;
+}
+
 int vhost_dev_set_inflight(struct vhost_dev *dev,
                            struct vhost_inflight *inflight)
 {
-- 
MST



  parent reply	other threads:[~2020-11-03 14:45 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-03 14:33 [PULL 00/38] pc,pci,vhost,virtio: fixes Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 01/38] pc: comment style fixup Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 02/38] virtio-mem: Make sure "addr" is always multiples of the block size Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 03/38] virtio-mem: Make sure "usable_region_size" " Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 04/38] virtio-mem: Probe THP size to determine default " Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 05/38] memory-device: Support big alignment requirements Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 06/38] memory-device: Add get_min_alignment() callback Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 07/38] virito-mem: Implement get_min_alignment() Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 08/38] hw/acpi : Don't use '#' flag of printf format Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 09/38] hw/acpi : add space before the open parenthesis '(' Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 10/38] hw/acpi : add spaces around operator Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 11/38] hw/virtio/vhost-backend: Fix Coverity CID 1432871 Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 12/38] hw/smbios: Fix leaked fd in save_opt_one() error path Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 13/38] virtio-iommu: Fix virtio_iommu_mr() Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 14/38] virtio-iommu: Store memory region in endpoint struct Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 15/38] virtio-iommu: Add memory notifiers for map/unmap Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 16/38] virtio-iommu: Call memory notifiers in attach/detach Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 17/38] virtio-iommu: Add replay() memory region callback Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 18/38] virtio-iommu: Add notify_flag_changed() " Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 19/38] memory: Add interface to set iommu page size mask Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 20/38] vfio: Set IOMMU page size as per host supported page size Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 21/38] virtio-iommu: Set supported page size mask Michael S. Tsirkin
2020-11-03 14:34 ` [PULL 22/38] vfio: Don't issue full 2^64 unmap Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 23/38] vhost-vdpa: Add qemu_close in vhost_vdpa_cleanup Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 24/38] net: Add vhost-vdpa in show_netdevs() Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 25/38] Revert "vhost-blk: set features before setting inflight feature" Michael S. Tsirkin
2020-11-03 14:35 ` Michael S. Tsirkin [this message]
2020-11-03 14:35 ` [PULL 27/38] libvhost-user: follow QEMU comment style Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 28/38] configure: introduce --enable-vhost-user-blk-server Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 29/38] block/export: make vhost-user-blk config space little-endian Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 30/38] block/export: fix vhost-user-blk get_config() information leak Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 31/38] contrib/vhost-user-blk: fix " Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 32/38] test: new qTest case to test the vhost-user-blk-server Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 33/38] tests/qtest: add multi-queue test case to vhost-user-blk-test Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 34/38] libqtest: add qtest_socket_server() Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 35/38] vhost-user-blk-test: rename destroy_drive() to destroy_file() Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 36/38] vhost-user-blk-test: close fork child file descriptors Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 37/38] vhost-user-blk-test: drop unused return value Michael S. Tsirkin
2020-11-03 14:35 ` [PULL 38/38] vhost-user-blk-test: fix races by using fd passing Michael S. Tsirkin
2020-11-03 15:59 ` [PULL 00/38] pc,pci,vhost,virtio: fixes Peter Maydell
2020-11-03 21:40   ` 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=20201103142306.71782-27-mst@redhat.com \
    --to=mst@redhat.com \
    --cc=jin.yu@intel.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=raphael.norwitz@nutanix.com \
    /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.