Message ID | 20180517085927.24925-7-peterx@redhat.com |
---|---|
State | New |
Headers | show |
Series | intel-iommu: nested vIOMMU, cleanups, bug fixes | expand |
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); >
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);
We pass in the VTDAddressSpace too. It'll be used in the follow up patches. Signed-off-by: Peter Xu <peterx@redhat.com> --- hw/i386/intel_iommu.c | 4 ++++ 1 file changed, 4 insertions(+)