[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v2 13/38] virtio-iommu: Fix virtio_iommu_mr()
From: |
Michael S. Tsirkin |
Subject: |
[PULL v2 13/38] virtio-iommu: Fix virtio_iommu_mr() |
Date: |
Tue, 3 Nov 2020 23:51:17 -0500 |
From: Jean-Philippe Brucker <jean-philippe@linaro.org>
Due to an invalid mask, virtio_iommu_mr() may return the wrong memory
region. It hasn't been too problematic so far because the function was
only used to test existence of an endpoint, but that is about to change.
Fixes: cfb42188b24d ("virtio-iommu: Implement attach/detach command")
Cc: QEMU Stable <qemu-stable@nongnu.org>
Acked-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Message-Id: <20201030180510.747225-2-jean-philippe@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/virtio/virtio-iommu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/virtio/virtio-iommu.c b/hw/virtio/virtio-iommu.c
index 21ec63b108..4c8f3909b7 100644
--- a/hw/virtio/virtio-iommu.c
+++ b/hw/virtio/virtio-iommu.c
@@ -101,7 +101,7 @@ static IOMMUMemoryRegion *virtio_iommu_mr(VirtIOIOMMU *s,
uint32_t sid)
bus_n = PCI_BUS_NUM(sid);
iommu_pci_bus = iommu_find_iommu_pcibus(s, bus_n);
if (iommu_pci_bus) {
- devfn = sid & PCI_DEVFN_MAX;
+ devfn = sid & (PCI_DEVFN_MAX - 1);
dev = iommu_pci_bus->pbdev[devfn];
if (dev) {
return &dev->iommu_mr;
--
MST
- [PULL v2 00/38] pc,pci,vhost,virtio: fixes, Michael S. Tsirkin, 2020/11/03
- [PULL v2 01/38] pc: comment style fixup, Michael S. Tsirkin, 2020/11/03
- [PULL v2 02/38] virtio-mem: Make sure "addr" is always multiples of the block size, Michael S. Tsirkin, 2020/11/03
- [PULL v2 03/38] virtio-mem: Make sure "usable_region_size" is always multiples of the block size, Michael S. Tsirkin, 2020/11/03
- [PULL v2 04/38] virtio-mem: Probe THP size to determine default block size, Michael S. Tsirkin, 2020/11/03
- [PULL v2 05/38] memory-device: Support big alignment requirements, Michael S. Tsirkin, 2020/11/03
- [PULL v2 07/38] virito-mem: Implement get_min_alignment(), Michael S. Tsirkin, 2020/11/03
- [PULL v2 06/38] memory-device: Add get_min_alignment() callback, Michael S. Tsirkin, 2020/11/03
- [PULL v2 08/38] hw/acpi : Don't use '#' flag of printf format, Michael S. Tsirkin, 2020/11/03
- [PULL v2 13/38] virtio-iommu: Fix virtio_iommu_mr(),
Michael S. Tsirkin <=
- [PULL v2 15/38] virtio-iommu: Add memory notifiers for map/unmap, Michael S. Tsirkin, 2020/11/03
- [PULL v2 17/38] virtio-iommu: Add replay() memory region callback, Michael S. Tsirkin, 2020/11/03
- [PULL v2 19/38] memory: Add interface to set iommu page size mask, Michael S. Tsirkin, 2020/11/03
- [PULL v2 20/38] vfio: Set IOMMU page size as per host supported page size, Michael S. Tsirkin, 2020/11/03
- [PULL v2 21/38] virtio-iommu: Set supported page size mask, Michael S. Tsirkin, 2020/11/03
- [PULL v2 22/38] vfio: Don't issue full 2^64 unmap, Michael S. Tsirkin, 2020/11/03
- [PULL v2 23/38] vhost-vdpa: Add qemu_close in vhost_vdpa_cleanup, Michael S. Tsirkin, 2020/11/03
- [PULL v2 09/38] hw/acpi : add space before the open parenthesis '(', Michael S. Tsirkin, 2020/11/03
- [PULL v2 24/38] net: Add vhost-vdpa in show_netdevs(), Michael S. Tsirkin, 2020/11/03
- [PULL v2 25/38] Revert "vhost-blk: set features before setting inflight feature", Michael S. Tsirkin, 2020/11/03