]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
s390x/pci: only limit DMA aperture if vfio DMA limit reported
authorMatthew Rosato <mjrosato@linux.ibm.com>
Fri, 10 Nov 2023 17:51:08 +0000 (12:51 -0500)
committerMichael Tokarev <mjt@tls.msk.ru>
Sun, 19 Nov 2023 18:15:06 +0000 (21:15 +0300)
If the host kernel lacks vfio DMA limit reporting, do not attempt
to shrink the guest DMA aperture.

Fixes: df202e3ff3 ("s390x/pci: shrink DMA aperture to be bound by vfio DMA limit")
Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
Message-ID: <20231110175108.465851-3-mjrosato@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
(cherry picked from commit 8011b508cf0ddbdbda03820f4fa6cd484a6d9aed)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/s390x/s390-pci-vfio.c

index 59a2e03873bd3e9e862d0efb1b649ccf46d85408..4f6f61f02e1dfd9eafbe8734fb89f77758987219 100644 (file)
@@ -132,7 +132,7 @@ static void s390_pci_read_base(S390PCIBusDevice *pbdev,
      * to the guest based upon the vfio DMA limit.
      */
     vfio_size = pbdev->iommu->max_dma_limit << TARGET_PAGE_BITS;
-    if (vfio_size < (cap->end_dma - cap->start_dma + 1)) {
+    if (vfio_size > 0 && vfio_size < cap->end_dma - cap->start_dma + 1) {
         pbdev->zpci_fn.edma = cap->start_dma + vfio_size - 1;
     }
 }