[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 09/11] memory: Add iova to IOMMUTLBEntry
From: |
David Gibson |
Subject: |
[Qemu-ppc] [PATCH 09/11] memory: Add iova to IOMMUTLBEntry |
Date: |
Tue, 14 May 2013 19:13:55 +1000 |
Currently, the IOMMUTLBEntry structure contains the translated address,
but not the IOVA (original untranslated address). We're going to need it
for upcoming changes, so add it in here, and populate it correctly in our
one existing iommu implementation.
Signed-off-by: David Gibson <address@hidden>
---
hw/ppc/spapr_iommu.c | 2 ++
include/exec/memory.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/hw/ppc/spapr_iommu.c b/hw/ppc/spapr_iommu.c
index 90469b3..07a6307 100644
--- a/hw/ppc/spapr_iommu.c
+++ b/hw/ppc/spapr_iommu.c
@@ -80,6 +80,7 @@ static IOMMUTLBEntry spapr_tce_translate_iommu(MemoryRegion
*iommu, hwaddr addr)
if (tcet->bypass) {
return (IOMMUTLBEntry) {
+ .iova = 0,
.translated_addr = 0,
.addr_mask = ~(hwaddr)0,
.perm = { true, true },
@@ -102,6 +103,7 @@ static IOMMUTLBEntry spapr_tce_translate_iommu(MemoryRegion
*iommu, hwaddr addr)
#endif
return (IOMMUTLBEntry) {
+ .iova = addr & ~SPAPR_TCE_PAGE_MASK,
.translated_addr = tce & ~SPAPR_TCE_PAGE_MASK,
.addr_mask = SPAPR_TCE_PAGE_MASK,
.perm = { [0] = tce & SPAPR_TCE_RO, [1] = tce & SPAPR_TCE_WO },
diff --git a/include/exec/memory.h b/include/exec/memory.h
index b97ace7..cd33439 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -116,7 +116,7 @@ typedef struct IOMMUTLBEntry IOMMUTLBEntry;
typedef struct MemoryRegionIOMMUOps MemoryRegionIOMMUOps;
struct IOMMUTLBEntry {
- hwaddr translated_addr;
+ hwaddr iova, translated_addr;
hwaddr addr_mask; /* 0xfff = 4k translation */
bool perm[2]; /* permissions, [0] for read, [1] for write */
};
--
1.7.10.4