diff options
author | Peter Maydell | 2016-07-01 12:52:14 +0200 |
---|---|---|
committer | Peter Maydell | 2016-07-01 12:52:14 +0200 |
commit | 94e31093ff34ead50dc3970699a4e36582fb3f17 (patch) | |
tree | 3865f7b7a02e4049262df811b1c5102740e92edf /hw/i386/intel_iommu.c | |
parent | Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2016-06-30' into ... (diff) | |
parent | intel_iommu: Throw hw_error on notify_started (diff) | |
download | qemu-94e31093ff34ead50dc3970699a4e36582fb3f17.tar.gz qemu-94e31093ff34ead50dc3970699a4e36582fb3f17.tar.xz qemu-94e31093ff34ead50dc3970699a4e36582fb3f17.zip |
Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20160630.0' into staging
VFIO updates 2016-06-30
- Fix VGA quirks (stable 2.6) (Alex Williamson)
- Registering PCIe extended capabilities (Chen Fan)
- Hide read-only SR-IOV capability from VM (Alex Williamson)
- MemoryRegionIOMMUOps.notify_started/stopped (Alexey Kardashevskiy)
- hw_error on intel_iommu notify_started (Alex Williamson)
# gpg: Signature made Thu 30 Jun 2016 20:45:55 BST
# gpg: using RSA key 0x239B9B6E3BB08B22
# gpg: Good signature from "Alex Williamson <alex.williamson@redhat.com>"
# gpg: aka "Alex Williamson <alex@shazbot.org>"
# gpg: aka "Alex Williamson <alwillia@redhat.com>"
# gpg: aka "Alex Williamson <alex.l.williamson@gmail.com>"
# Primary key fingerprint: 42F6 C04E 540B D1A9 9E7B 8A90 239B 9B6E 3BB0 8B22
* remotes/awilliam/tags/vfio-update-20160630.0:
intel_iommu: Throw hw_error on notify_started
memory: Add MemoryRegionIOMMUOps.notify_started/stopped callbacks
vfio/pci: Hide SR-IOV capability
vfio: add pcie extended capability support
vfio/pci: Fix VGA quirks
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/i386/intel_iommu.c')
-rw-r--r-- | hw/i386/intel_iommu.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 347718f938..5eba704477 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -24,6 +24,7 @@ #include "exec/address-spaces.h" #include "intel_iommu_internal.h" #include "hw/pci/pci.h" +#include "hw/pci/pci_bus.h" /*#define DEBUG_INTEL_IOMMU*/ #ifdef DEBUG_INTEL_IOMMU @@ -1871,6 +1872,16 @@ 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, @@ -1938,6 +1949,7 @@ 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; |