diff mbox series

[12/27] Make flatview_do_translate() take a MemTxAttrs argument

Message ID 20180521140402.23318-13-peter.maydell@linaro.org
State Superseded
Headers show
Series iommu: support txattrs, support TCG execution, implement TZ MPC | expand

Commit Message

Peter Maydell May 21, 2018, 2:03 p.m. UTC
As part of plumbing MemTxAttrs down to the IOMMU translate method,
add MemTxAttrs as an argument to flatview_do_translate().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
 exec.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

-- 
2.17.0

Comments

Alex Bennée May 22, 2018, 11 a.m. UTC | #1
Peter Maydell <peter.maydell@linaro.org> writes:

> As part of plumbing MemTxAttrs down to the IOMMU translate method,

> add MemTxAttrs as an argument to flatview_do_translate().

>

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


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


> ---

>  exec.c | 9 ++++++---

>  1 file changed, 6 insertions(+), 3 deletions(-)

>

> diff --git a/exec.c b/exec.c

> index 84f2c21ecb..af2b82d154 100644

> --- a/exec.c

> +++ b/exec.c

> @@ -541,6 +541,7 @@ unassigned:

>   * @is_write: whether the translation operation is for write

>   * @is_mmio: whether this can be MMIO, set true if it can

>   * @target_as: the address space targeted by the IOMMU

> + * @attrs: memory transaction attributes

>   *

>   * This function is called from RCU critical section

>   */

> @@ -551,7 +552,8 @@ static MemoryRegionSection flatview_do_translate(FlatView *fv,

>                                                   hwaddr *page_mask_out,

>                                                   bool is_write,

>                                                   bool is_mmio,

> -                                                 AddressSpace **target_as)

> +                                                 AddressSpace **target_as,

> +                                                 MemTxAttrs attrs)

>  {

>      MemoryRegionSection *section;

>      IOMMUMemoryRegion *iommu_mr;

> @@ -592,7 +594,8 @@ IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr,

>       * but page mask.

>       */

>      section = flatview_do_translate(address_space_to_flatview(as), addr, &xlat,

> -                                    NULL, &page_mask, is_write, false, &as);

> +                                    NULL, &page_mask, is_write, false, &as,

> +                                    attrs);

>

>      /* Illegal translation */

>      if (section.mr == &io_mem_unassigned) {

> @@ -627,7 +630,7 @@ MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,

>

>      /* This can be MMIO, so setup MMIO bit. */

>      section = flatview_do_translate(fv, addr, xlat, plen, NULL,

> -                                    is_write, true, &as);

> +                                    is_write, true, &as, attrs);

>      mr = section.mr;

>

>      if (xen_enabled() && memory_access_is_direct(mr, is_write)) {



--
Alex Bennée
Richard Henderson May 22, 2018, 5:29 p.m. UTC | #2
On 05/21/2018 07:03 AM, Peter Maydell wrote:
> As part of plumbing MemTxAttrs down to the IOMMU translate method,

> add MemTxAttrs as an argument to flatview_do_translate().

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---


Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
diff mbox series

Patch

diff --git a/exec.c b/exec.c
index 84f2c21ecb..af2b82d154 100644
--- a/exec.c
+++ b/exec.c
@@ -541,6 +541,7 @@  unassigned:
  * @is_write: whether the translation operation is for write
  * @is_mmio: whether this can be MMIO, set true if it can
  * @target_as: the address space targeted by the IOMMU
+ * @attrs: memory transaction attributes
  *
  * This function is called from RCU critical section
  */
@@ -551,7 +552,8 @@  static MemoryRegionSection flatview_do_translate(FlatView *fv,
                                                  hwaddr *page_mask_out,
                                                  bool is_write,
                                                  bool is_mmio,
-                                                 AddressSpace **target_as)
+                                                 AddressSpace **target_as,
+                                                 MemTxAttrs attrs)
 {
     MemoryRegionSection *section;
     IOMMUMemoryRegion *iommu_mr;
@@ -592,7 +594,8 @@  IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr,
      * but page mask.
      */
     section = flatview_do_translate(address_space_to_flatview(as), addr, &xlat,
-                                    NULL, &page_mask, is_write, false, &as);
+                                    NULL, &page_mask, is_write, false, &as,
+                                    attrs);
 
     /* Illegal translation */
     if (section.mr == &io_mem_unassigned) {
@@ -627,7 +630,7 @@  MemoryRegion *flatview_translate(FlatView *fv, hwaddr addr, hwaddr *xlat,
 
     /* This can be MMIO, so setup MMIO bit. */
     section = flatview_do_translate(fv, addr, xlat, plen, NULL,
-                                    is_write, true, &as);
+                                    is_write, true, &as, attrs);
     mr = section.mr;
 
     if (xen_enabled() && memory_access_is_direct(mr, is_write)) {