summaryrefslogtreecommitdiffstats
path: root/hw/s390x/s390-pci-bus.h
diff options
context:
space:
mode:
authorYi Min Zhao2018-02-05 08:22:57 +0100
committerCornelia Huck2018-02-09 09:37:13 +0100
commitb3f05d8c7f5ef499e7bf7384d7a0507b8a33afe4 (patch)
tree6ed5b4cea3e7d858b4c4cec15027b838212e8baa /hw/s390x/s390-pci-bus.h
parents390x/pci: fixup the code walking IOMMU tables (diff)
downloadqemu-b3f05d8c7f5ef499e7bf7384d7a0507b8a33afe4.tar.gz
qemu-b3f05d8c7f5ef499e7bf7384d7a0507b8a33afe4.tar.xz
qemu-b3f05d8c7f5ef499e7bf7384d7a0507b8a33afe4.zip
s390x/pci: fixup global refresh
The VFIO common code doesn't provide the possibility to modify a previous mapping entry in another way than unmapping and mapping again with new properties. To avoid -EEXIST DMA mapping error, we introduce a GHashTable to store S390IOTLBEntry instances in order to cache the mapped entries. When intercepting rpcit instruction, ignore the identical mapped entries to avoid doing map operations multiple times and do unmap and re-map operations for the case of updating the valid entries. Acked-by: Pierre Morel <pmorel@linux.vnet.ibm.com> Signed-off-by: Yi Min Zhao <zyimin@linux.vnet.ibm.com> Message-Id: <20180205072258.5968-3-zyimin@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to 'hw/s390x/s390-pci-bus.h')
-rw-r--r--hw/s390x/s390-pci-bus.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/s390x/s390-pci-bus.h b/hw/s390x/s390-pci-bus.h
index 7ed577c806..1f7f9b5814 100644
--- a/hw/s390x/s390-pci-bus.h
+++ b/hw/s390x/s390-pci-bus.h
@@ -278,6 +278,7 @@ typedef struct S390PCIIOMMU {
uint64_t g_iota;
uint64_t pba;
uint64_t pal;
+ GHashTable *iotlb;
} S390PCIIOMMU;
typedef struct S390PCIIOMMUTable {