|
|
b38b0f |
From 15b59b77a4c7b9ef38e82b57a1dcdeb5c88b3156 Mon Sep 17 00:00:00 2001
|
|
|
b38b0f |
From: Cornelia Huck <cohuck@redhat.com>
|
|
|
b38b0f |
Date: Wed, 17 Apr 2019 13:57:28 +0100
|
|
|
b38b0f |
Subject: [PATCH 11/24] s390x/pci: Set the iommu region size mpcifc request
|
|
|
b38b0f |
|
|
|
b38b0f |
RH-Author: Cornelia Huck <cohuck@redhat.com>
|
|
|
b38b0f |
Message-id: <20190417135741.25297-12-cohuck@redhat.com>
|
|
|
b38b0f |
Patchwork-id: 85793
|
|
|
b38b0f |
O-Subject: [RHEL-8.1.0 qemu-kvm PATCH v2 11/24] s390x/pci: Set the iommu region size mpcifc request
|
|
|
b38b0f |
Bugzilla: 1699070
|
|
|
b38b0f |
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
|
|
b38b0f |
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
|
b38b0f |
RH-Acked-by: Jens Freimann <jfreimann@redhat.com>
|
|
|
b38b0f |
|
|
|
b38b0f |
From: Pierre Morel <pmorel@linux.ibm.com>
|
|
|
b38b0f |
|
|
|
b38b0f |
The size of the accessible iommu memory region in the guest
|
|
|
b38b0f |
is given to the IOMMU by the guest through the mpcifc request
|
|
|
b38b0f |
specifying the PCI Base Address and the PCI Address Limit.
|
|
|
b38b0f |
|
|
|
b38b0f |
Let's set the size of the IOMMU region to:
|
|
|
b38b0f |
(PCI Address Limit) - (PCI Base Address) + 1.
|
|
|
b38b0f |
|
|
|
b38b0f |
Fixes: f7c40aa1e7 ("s390x/pci: fix failures of dma map/unmap")
|
|
|
b38b0f |
Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
|
|
|
b38b0f |
Message-Id: <1547125207-16907-2-git-send-email-pmorel@linux.ibm.com>
|
|
|
b38b0f |
Acked-by: Collin Walling <walling@linux.ibm.com>
|
|
|
b38b0f |
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
|
|
|
b38b0f |
(cherry picked from commit dbe9cf606c2fe7365008be2a71d7b1781bbd5435)
|
|
|
b38b0f |
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
|
|
|
b38b0f |
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
|
|
b38b0f |
---
|
|
|
b38b0f |
hw/s390x/s390-pci-bus.c | 2 +-
|
|
|
b38b0f |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
b38b0f |
|
|
|
b38b0f |
diff --git a/hw/s390x/s390-pci-bus.c b/hw/s390x/s390-pci-bus.c
|
|
|
b38b0f |
index e19e134..a785acb 100644
|
|
|
b38b0f |
--- a/hw/s390x/s390-pci-bus.c
|
|
|
b38b0f |
+++ b/hw/s390x/s390-pci-bus.c
|
|
|
b38b0f |
@@ -660,7 +660,7 @@ void s390_pci_iommu_enable(S390PCIIOMMU *iommu)
|
|
|
b38b0f |
char *name = g_strdup_printf("iommu-s390-%04x", iommu->pbdev->uid);
|
|
|
b38b0f |
memory_region_init_iommu(&iommu->iommu_mr, sizeof(iommu->iommu_mr),
|
|
|
b38b0f |
TYPE_S390_IOMMU_MEMORY_REGION, OBJECT(&iommu->mr),
|
|
|
b38b0f |
- name, iommu->pal + 1);
|
|
|
b38b0f |
+ name, iommu->pal - iommu->pba + 1);
|
|
|
b38b0f |
iommu->enabled = true;
|
|
|
b38b0f |
memory_region_add_subregion(&iommu->mr, 0, MEMORY_REGION(&iommu->iommu_mr));
|
|
|
b38b0f |
g_free(name);
|
|
|
b38b0f |
--
|
|
|
b38b0f |
1.8.3.1
|
|
|
b38b0f |
|