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.au...@redhat.com> Eric > > Signed-off-by: Peter Xu <pet...@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); >