[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL v3 13/31] virtio-iommu: Fix virtio_iommu_mr()
From: |
Michael S. Tsirkin |
Subject: |
[PULL v3 13/31] virtio-iommu: Fix virtio_iommu_mr() |
Date: |
Wed, 4 Nov 2020 13:41:54 -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 v3 02/31] virtio-mem: Make sure "addr" is always multiples of the block size, (continued)
- [PULL v3 02/31] virtio-mem: Make sure "addr" is always multiples of the block size, Michael S. Tsirkin, 2020/11/04
- [PULL v3 03/31] virtio-mem: Make sure "usable_region_size" is always multiples of the block size, Michael S. Tsirkin, 2020/11/04
- [PULL v3 04/31] virtio-mem: Probe THP size to determine default block size, Michael S. Tsirkin, 2020/11/04
- [PULL v3 05/31] memory-device: Support big alignment requirements, Michael S. Tsirkin, 2020/11/04
- [PULL v3 06/31] memory-device: Add get_min_alignment() callback, Michael S. Tsirkin, 2020/11/04
- [PULL v3 08/31] hw/acpi : Don't use '#' flag of printf format, Michael S. Tsirkin, 2020/11/04
- [PULL v3 07/31] virito-mem: Implement get_min_alignment(), Michael S. Tsirkin, 2020/11/04
- [PULL v3 09/31] hw/acpi : add space before the open parenthesis '(', Michael S. Tsirkin, 2020/11/04
- [PULL v3 11/31] hw/virtio/vhost-backend: Fix Coverity CID 1432871, Michael S. Tsirkin, 2020/11/04
- [PULL v3 12/31] hw/smbios: Fix leaked fd in save_opt_one() error path, Michael S. Tsirkin, 2020/11/04
- [PULL v3 13/31] virtio-iommu: Fix virtio_iommu_mr(),
Michael S. Tsirkin <=
- [PULL v3 14/31] virtio-iommu: Store memory region in endpoint struct, Michael S. Tsirkin, 2020/11/04
- [PULL v3 15/31] virtio-iommu: Add memory notifiers for map/unmap, Michael S. Tsirkin, 2020/11/04
- [PULL v3 16/31] virtio-iommu: Call memory notifiers in attach/detach, Michael S. Tsirkin, 2020/11/04
- [PULL v3 17/31] virtio-iommu: Add replay() memory region callback, Michael S. Tsirkin, 2020/11/04
- [PULL v3 19/31] memory: Add interface to set iommu page size mask, Michael S. Tsirkin, 2020/11/04
- [PULL v3 20/31] vfio: Set IOMMU page size as per host supported page size, Michael S. Tsirkin, 2020/11/04
- [PULL v3 21/31] virtio-iommu: Set supported page size mask, Michael S. Tsirkin, 2020/11/04
- [PULL v3 22/31] vfio: Don't issue full 2^64 unmap, Michael S. Tsirkin, 2020/11/04
- [PULL v3 23/31] vhost-vdpa: Add qemu_close in vhost_vdpa_cleanup, Michael S. Tsirkin, 2020/11/04
- [PULL v3 24/31] net: Add vhost-vdpa in show_netdevs(), Michael S. Tsirkin, 2020/11/04