Peter Maydell <peter.mayd...@linaro.org> writes:

> As part of plumbing MemTxAttrs down to the IOMMU translate method,
> add MemTxAttrs as an argument to address_space_map().
> Its callers either have an attrs value to hand, or don't care
> and can use MEMTXATTRS_UNSPECIFIED.
>
> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>

Reviewed-by: Alex Bennée <alex.ben...@linaro.org>

> ---
>  include/exec/memory.h   | 3 ++-
>  include/sysemu/dma.h    | 3 ++-
>  exec.c                  | 6 ++++--
>  target/ppc/mmu-hash64.c | 3 ++-
>  4 files changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/include/exec/memory.h b/include/exec/memory.h
> index 9a30a1bb9e..b1bdb376d4 100644
> --- a/include/exec/memory.h
> +++ b/include/exec/memory.h
> @@ -1952,9 +1952,10 @@ bool address_space_access_valid(AddressSpace *as, 
> hwaddr addr, int len, bool is_
>   * @addr: address within that address space
>   * @plen: pointer to length of buffer; updated on return
>   * @is_write: indicates the transfer direction
> + * @attrs: memory attributes
>   */
>  void *address_space_map(AddressSpace *as, hwaddr addr,
> -                        hwaddr *plen, bool is_write);
> +                        hwaddr *plen, bool is_write, MemTxAttrs attrs);
>
>  /* address_space_unmap: Unmaps a memory region previously mapped by 
> address_space_map()
>   *
> diff --git a/include/sysemu/dma.h b/include/sysemu/dma.h
> index c228c66513..0d73902634 100644
> --- a/include/sysemu/dma.h
> +++ b/include/sysemu/dma.h
> @@ -132,7 +132,8 @@ static inline void *dma_memory_map(AddressSpace *as,
>      hwaddr xlen = *len;
>      void *p;
>
> -    p = address_space_map(as, addr, &xlen, dir == DMA_DIRECTION_FROM_DEVICE);
> +    p = address_space_map(as, addr, &xlen, dir == DMA_DIRECTION_FROM_DEVICE,
> +                          MEMTXATTRS_UNSPECIFIED);
>      *len = xlen;
>      return p;
>  }
> diff --git a/exec.c b/exec.c
> index d314c7cc39..1dc81cfe4a 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -3529,7 +3529,8 @@ flatview_extend_translation(FlatView *fv, hwaddr addr,
>  void *address_space_map(AddressSpace *as,
>                          hwaddr addr,
>                          hwaddr *plen,
> -                        bool is_write)
> +                        bool is_write,
> +                        MemTxAttrs attrs)
>  {
>      hwaddr len = *plen;
>      hwaddr l, xlat;
> @@ -3616,7 +3617,8 @@ void *cpu_physical_memory_map(hwaddr addr,
>                                hwaddr *plen,
>                                int is_write)
>  {
> -    return address_space_map(&address_space_memory, addr, plen, is_write);
> +    return address_space_map(&address_space_memory, addr, plen, is_write,
> +                             MEMTXATTRS_UNSPECIFIED);
>  }
>
>  void cpu_physical_memory_unmap(void *buffer, hwaddr len,
> diff --git a/target/ppc/mmu-hash64.c b/target/ppc/mmu-hash64.c
> index a1db20e3a8..aa200cba4c 100644
> --- a/target/ppc/mmu-hash64.c
> +++ b/target/ppc/mmu-hash64.c
> @@ -431,7 +431,8 @@ const ppc_hash_pte64_t *ppc_hash64_map_hptes(PowerPCCPU 
> *cpu,
>          return NULL;
>      }
>
> -    hptes = address_space_map(CPU(cpu)->as, base + pte_offset, &plen, false);
> +    hptes = address_space_map(CPU(cpu)->as, base + pte_offset, &plen, false,
> +                              MEMTXATTRS_UNSPECIFIED);
>      if (plen < (n * HASH_PTE_SIZE_64)) {
>          hw_error("%s: Unable to map all requested HPTEs\n", __func__);
>      }


--
Alex Bennée

Reply via email to