diff mbox series

[11/27] Make address_space_get_iotlb_entry() take a MemTxAttrs argument

Message ID 20180521140402.23318-12-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 address_space_get_iotlb_entry().

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

---
 include/exec/memory.h | 2 +-
 exec.c                | 2 +-
 hw/virtio/vhost.c     | 3 ++-
 3 files changed, 4 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 address_space_get_iotlb_entry().

>

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


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


> ---

>  include/exec/memory.h | 2 +-

>  exec.c                | 2 +-

>  hw/virtio/vhost.c     | 3 ++-

>  3 files changed, 4 insertions(+), 3 deletions(-)

>

> diff --git a/include/exec/memory.h b/include/exec/memory.h

> index 3980ab47ed..309fdfb89b 100644

> --- a/include/exec/memory.h

> +++ b/include/exec/memory.h

> @@ -1896,7 +1896,7 @@ void address_space_cache_destroy(MemoryRegionCache *cache);

>   * entry. Should be called from an RCU critical section.

>   */

>  IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr,

> -                                            bool is_write);

> +                                            bool is_write, MemTxAttrs attrs);

>

>  /* address_space_translate: translate an address range into an address space

>   * into a MemoryRegion and an address range into that section.  Should be

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

> index b818ba87f4..84f2c21ecb 100644

> --- a/exec.c

> +++ b/exec.c

> @@ -582,7 +582,7 @@ static MemoryRegionSection flatview_do_translate(FlatView *fv,

>

>  /* Called from RCU critical section */

>  IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr,

> -                                            bool is_write)

> +                                            bool is_write, MemTxAttrs attrs)

>  {

>      MemoryRegionSection section;

>      hwaddr xlat, page_mask;

> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c

> index 9d5850a7d7..48f4fd7cc9 100644

> --- a/hw/virtio/vhost.c

> +++ b/hw/virtio/vhost.c

> @@ -895,7 +895,8 @@ int vhost_device_iotlb_miss(struct vhost_dev *dev, uint64_t iova, int write)

>      rcu_read_lock();

>

>      iotlb = address_space_get_iotlb_entry(dev->vdev->dma_as,

> -                                          iova, write);

> +                                          iova, write,

> +                                          MEMTXATTRS_UNSPECIFIED);

>      if (iotlb.target_as != NULL) {

>          ret = vhost_memory_region_lookup(dev, iotlb.translated_addr,

>                                           &uaddr, &len);



--
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 address_space_get_iotlb_entry().

> 

> 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/include/exec/memory.h b/include/exec/memory.h
index 3980ab47ed..309fdfb89b 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -1896,7 +1896,7 @@  void address_space_cache_destroy(MemoryRegionCache *cache);
  * entry. Should be called from an RCU critical section.
  */
 IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr,
-                                            bool is_write);
+                                            bool is_write, MemTxAttrs attrs);
 
 /* address_space_translate: translate an address range into an address space
  * into a MemoryRegion and an address range into that section.  Should be
diff --git a/exec.c b/exec.c
index b818ba87f4..84f2c21ecb 100644
--- a/exec.c
+++ b/exec.c
@@ -582,7 +582,7 @@  static MemoryRegionSection flatview_do_translate(FlatView *fv,
 
 /* Called from RCU critical section */
 IOMMUTLBEntry address_space_get_iotlb_entry(AddressSpace *as, hwaddr addr,
-                                            bool is_write)
+                                            bool is_write, MemTxAttrs attrs)
 {
     MemoryRegionSection section;
     hwaddr xlat, page_mask;
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 9d5850a7d7..48f4fd7cc9 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -895,7 +895,8 @@  int vhost_device_iotlb_miss(struct vhost_dev *dev, uint64_t iova, int write)
     rcu_read_lock();
 
     iotlb = address_space_get_iotlb_entry(dev->vdev->dma_as,
-                                          iova, write);
+                                          iova, write,
+                                          MEMTXATTRS_UNSPECIFIED);
     if (iotlb.target_as != NULL) {
         ret = vhost_memory_region_lookup(dev, iotlb.translated_addr,
                                          &uaddr, &len);