On Tue, 30 Aug 2016 11:06:58 +0800 Jason Wang <jasow...@redhat.com> wrote:
> From: Peter Xu <pet...@redhat.com> > > This reverts commit 3cb3b1549f5401dc3a5e1d073e34063dc274136f. Vhost > device IOTLB API will get notified and send invalidation request to > vhost through this notifier. AFAICT this series does not address the original problem for which commit 3cb3b1549f54 was added. We've only addressed the very narrow use case of a device iotlb firing the iommu notifier therefore this change is a regression versus 2.7 since it allows invalid configurations with a physical iommu which will never receive the necessary notifies from intel-iommu emulation to work properly. Thanks, Alex > Cc: Alex Williamson <alex.william...@redhat.com> > Signed-off-by: Peter Xu <pet...@redhat.com> > Signed-off-by: Jason Wang <jasow...@redhat.com> > --- > hw/i386/intel_iommu.c | 12 ------------ > 1 file changed, 12 deletions(-) > > diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c > index 298faab..15d1216 100644 > --- a/hw/i386/intel_iommu.c > +++ b/hw/i386/intel_iommu.c > @@ -25,7 +25,6 @@ > #include "exec/address-spaces.h" > #include "intel_iommu_internal.h" > #include "hw/pci/pci.h" > -#include "hw/pci/pci_bus.h" > #include "hw/i386/pc.h" > #include "hw/boards.h" > #include "hw/i386/x86-iommu.h" > @@ -2041,16 +2040,6 @@ static IOMMUTLBEntry vtd_iommu_translate(MemoryRegion > *iommu, hwaddr addr, > return ret; > } > > -static void vtd_iommu_notify_started(MemoryRegion *iommu) > -{ > - VTDAddressSpace *vtd_as = container_of(iommu, VTDAddressSpace, iommu); > - > - hw_error("Device at bus %s addr %02x.%d requires iommu notifier which " > - "is currently not supported by intel-iommu emulation", > - vtd_as->bus->qbus.name, PCI_SLOT(vtd_as->devfn), > - PCI_FUNC(vtd_as->devfn)); > -} > - > static const VMStateDescription vtd_vmstate = { > .name = "iommu-intel", > .unmigratable = 1, > @@ -2418,7 +2407,6 @@ static void vtd_init(IntelIOMMUState *s) > memset(s->womask, 0, DMAR_REG_SIZE); > > s->iommu_ops.translate = vtd_iommu_translate; > - s->iommu_ops.notify_started = vtd_iommu_notify_started; > s->root = 0; > s->root_extended = false; > s->dmar_enabled = false;