[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH 09/11] memory: Add iova to IOMMUTLBEntry
From: |
Alex Williamson |
Subject: |
Re: [Qemu-ppc] [PATCH 09/11] memory: Add iova to IOMMUTLBEntry |
Date: |
Tue, 14 May 2013 10:53:35 -0600 |
On Tue, 2013-05-14 at 19:13 +1000, David Gibson wrote:
> 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;
Being a struct definition, I assume we'd want to keep these on separate
lines for clarity (and preferably comments).
> hwaddr addr_mask; /* 0xfff = 4k translation */
> bool perm[2]; /* permissions, [0] for read, [1] for write */
> };
- [Qemu-ppc] [0/11] RFC: VFIO and guest side IOMMUs, version 3, David Gibson, 2013/05/14
- [Qemu-ppc] [PATCH 02/11] pci: Don't del_subgregion on a non subregion, David Gibson, 2013/05/14
- [Qemu-ppc] [PATCH 07/11] vfio: Introduce VFIO address spaces, David Gibson, 2013/05/14
- [Qemu-ppc] [PATCH 06/11] memory: Sanity check that no listeners remain on a destroyed AddressSpace, David Gibson, 2013/05/14
- [Qemu-ppc] [PATCH 09/11] memory: Add iova to IOMMUTLBEntry, David Gibson, 2013/05/14
- [Qemu-ppc] [PATCH 11/11] vfio: Add guest side IOMMU support, David Gibson, 2013/05/14