[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 01/12] virtio-iommu: Fix the partial copy of probe request
From: |
Michael S. Tsirkin |
Subject: |
[PULL 01/12] virtio-iommu: Fix the partial copy of probe request |
Date: |
Tue, 28 Jun 2022 00:42:27 -0400 |
From: Zhenzhong Duan <zhenzhong.duan@intel.com>
The structure of probe request doesn't include the tail, this leads
to a few field missed to be copied. Currently this isn't an issue as
those missed field belong to reserved field, just in case reserved
field will be used in the future.
Changed 4th parameter of virtio_iommu_iov_to_req() to receive size
of device-readable part.
Fixes: 1733eebb9e75b ("virtio-iommu: Implement RESV_MEM probe request")
Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Message-Id: <20220623023152.3473231-1-zhenzhong.duan@intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
---
hw/virtio/virtio-iommu.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
index 7c122ab957..08b227e828 100644
--- a/hw/virtio/virtio-iommu.c
+++ b/hw/virtio/virtio-iommu.c
@@ -675,11 +675,10 @@ static int virtio_iommu_probe(VirtIOIOMMU *s,
static int virtio_iommu_iov_to_req(struct iovec *iov,
unsigned int iov_cnt,
- void *req, size_t req_sz)
+ void *req, size_t payload_sz)
{
- size_t sz, payload_sz = req_sz - sizeof(struct virtio_iommu_req_tail);
+ size_t sz = iov_to_buf(iov, iov_cnt, 0, req, payload_sz);
- sz = iov_to_buf(iov, iov_cnt, 0, req, payload_sz);
if (unlikely(sz != payload_sz)) {
return VIRTIO_IOMMU_S_INVAL;
}
@@ -692,7 +691,8 @@ static int virtio_iommu_handle_ ## __req(VirtIOIOMMU *s,
\
unsigned int iov_cnt) \
{ \
struct virtio_iommu_req_ ## __req req; \
- int ret = virtio_iommu_iov_to_req(iov, iov_cnt, &req, sizeof(req)); \
+ int ret = virtio_iommu_iov_to_req(iov, iov_cnt, &req, \
+ sizeof(req) - sizeof(struct virtio_iommu_req_tail));\
\
return ret ? ret : virtio_iommu_ ## __req(s, &req); \
}
--
MST
- [PULL 00/12] virtio: fixes, Michael S. Tsirkin, 2022/06/28
- [PULL 02/12] msi: fix MSI vector limit check in msi_set_mask(), Michael S. Tsirkin, 2022/06/28
- [PULL 03/12] vhost: add method vhost_set_vring_err, Michael S. Tsirkin, 2022/06/28
- [PULL 04/12] vhost: setup error eventfd and dump errors, Michael S. Tsirkin, 2022/06/28
- [PULL 01/12] virtio-iommu: Fix the partial copy of probe request,
Michael S. Tsirkin <=
- [PULL 05/12] virtio-iommu: Fix migration regression, Michael S. Tsirkin, 2022/06/28
- [PULL 06/12] docs/vhost-user: Fix mismerge, Michael S. Tsirkin, 2022/06/28
- [PULL 07/12] libvhost-user: Fix VHOST_USER_GET_MAX_MEM_SLOTS reply, Michael S. Tsirkin, 2022/06/28
- [PULL 09/12] MAINTAINERS: Collect memory device files in "Memory devices", Michael S. Tsirkin, 2022/06/28
- [PULL 11/12] include/hw/virtio: document vhost_get_features, Michael S. Tsirkin, 2022/06/28
- [PULL 12/12] include/hw/virtio: document vhost_ack_features, Michael S. Tsirkin, 2022/06/28
- [PULL 10/12] contrib/vhost-user-blk: fix 32 bit build and enable, Michael S. Tsirkin, 2022/06/28
- [PULL 08/12] libvhost-user: Fix VHOST_USER_ADD_MEM_REG reply, Michael S. Tsirkin, 2022/06/28
- Re: [PULL 00/12] virtio: fixes, Richard Henderson, 2022/06/28