Hi Peter,
On 05/17/2018 10:59 AM, Peter Xu wrote:
> We pass in the VTDAddressSpace too. It'll be used in the follow up
> patches.
So you evetually preferred to keep .aw. I don't have a strong opinion
but maybe a small preference to v2 version.
Nevertheless
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Eric
>
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
> hw/i386/intel_iommu.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> index 4953d02ed0..fe5ee77d46 100644
> --- a/hw/i386/intel_iommu.c
> +++ b/hw/i386/intel_iommu.c
> @@ -753,9 +753,11 @@ typedef int (*vtd_page_walk_hook)(IOMMUTLBEntry *entry, void *private);
> * @hook_fn: hook func to be called when detected page
> * @private: private data to be passed into hook func
> * @notify_unmap: whether we should notify invalid entries
> + * @as: VT-d address space of the device
> * @aw: maximum address width
> */
> typedef struct {
> + VTDAddressSpace *as;
> vtd_page_walk_hook hook_fn;
> void *private;
> bool notify_unmap;
> @@ -1460,6 +1462,7 @@ static void vtd_iotlb_page_invalidate_notify(IntelIOMMUState *s,
> .private = (void *)&vtd_as->iommu,
> .notify_unmap = true,
> .aw = s->aw_bits,
> + .as = vtd_as,
> };
>
> /*
> @@ -2941,6 +2944,7 @@ static void vtd_iommu_replay(IOMMUMemoryRegion *iommu_mr, IOMMUNotifier *n)
> .private = (void *)n,
> .notify_unmap = false,
> .aw = s->aw_bits,
> + .as = vtd_as,
> };
>
> vtd_page_walk(&ce, 0, ~0ULL, &info);
>