Hi Peter,
On 06/04/2017 09:08, Peter Xu wrote:
> This is an "global" version of exising memory_region_iommu_replay() - we
s/exising/existing
> announce the translations to all the registered notifiers, instead of a
> specific one.
>
> Reviewed-by: David Gibson <[email protected]>
> Signed-off-by: Peter Xu <[email protected]>
> ---
> include/exec/memory.h | 8 ++++++++
> memory.c | 9 +++++++++
> 2 files changed, 17 insertions(+)
>
> diff --git a/include/exec/memory.h b/include/exec/memory.h
> index 07e43da..fb7dff3 100644
> --- a/include/exec/memory.h
> +++ b/include/exec/memory.h
> @@ -713,6 +713,14 @@ void memory_region_iommu_replay(MemoryRegion *mr,
> IOMMUNotifier *n,
> bool is_write);
>
> /**
> + * memory_region_iommu_replay_all: replay existing IOMMU translations
> + * to all the notifiers registered.
> + *
> + * @mr: the memory region to observe
> + */
> +void memory_region_iommu_replay_all(MemoryRegion *mr);
> +
> +/**
> * memory_region_unregister_iommu_notifier: unregister a notifier for
> * changes to IOMMU translation entries.
> *
> diff --git a/memory.c b/memory.c
> index 7496b3d..b4ed67b 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -1642,6 +1642,15 @@ void memory_region_iommu_replay(MemoryRegion *mr,
> IOMMUNotifier *n,
> }
> }
>
> +void memory_region_iommu_replay_all(MemoryRegion *mr)
> +{
> + IOMMUNotifier *notifier;
> +
> + IOMMU_NOTIFIER_FOREACH(notifier, mr) {
> + memory_region_iommu_replay(mr, notifier, false);
It is not fully clear to me what is the consequence of setting
is_write=false always?
Thanks
Eric
> + }
> +}
> +
> void memory_region_unregister_iommu_notifier(MemoryRegion *mr,
> IOMMUNotifier *n)
> {
>