mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
virtio-iommu: Fix virtio_iommu_mr()
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: cfb42188b2
("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>
This commit is contained in:
parent
8055d2fb7f
commit
bfe7a96173
1 changed files with 1 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue