qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for 2.8 10/11] Revert "intel_iommu: Throw hw_err


From: Jason Wang
Subject: Re: [Qemu-devel] [PATCH for 2.8 10/11] Revert "intel_iommu: Throw hw_error on notify_started"
Date: Wed, 31 Aug 2016 10:45:37 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0



On 2016年08月30日 11:37, Alex Williamson wrote:
On Tue, 30 Aug 2016 11:06:58 +0800
Jason Wang <address@hidden> wrote:

From: Peter Xu <address@hidden>

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

Looking at vfio, it cares about map but vhost only cares about IOTLB invalidation. Then I think we probably need another kind of notifier in this case to avoid this.

Cc: Alex Williamson <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Signed-off-by: Jason Wang <address@hidden>
---
  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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]