xqemu/hw/i386
Eduardo Habkost ef0e8fc768 iommu: Don't crash if machine is not PC_MACHINE
Currently it's possible to crash QEMU using "-device *-iommu" and
"-machine none":

  $ qemu-system-x86_64 -machine none -device amd-iommu
  qemu/hw/i386/amd_iommu.c:1140:amdvi_realize: Object 0x55627dafbc90 is not an instance of type generic-pc-machine
  Aborted (core dumped)
  $ qemu-system-x86_64 -machine none -device intel-iommu
  qemu/hw/i386/intel_iommu.c:2972:vtd_realize: Object 0x56292ec0bc90 is not an instance of type generic-pc-machine
  Aborted (core dumped)

Fix amd-iommu and intel-iommu to ensure the current machine is really a
TYPE_PC_MACHINE instance at their realize methods.

Resulting error messages:

  $ qemu-system-x86_64 -machine none -device amd-iommu
  qemu-system-x86_64: -device amd-iommu: Machine-type 'none' not supported by amd-iommu
  $ qemu-system-x86_64 -machine none -device intel-iommu
  qemu-system-x86_64: -device intel-iommu: Machine-type 'none' not supported by intel-iommu

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2017-05-10 22:04:23 +03:00
..
kvm kvmclock: Don't crash QEMU if KVM is disabled 2017-03-14 13:26:36 +01:00
xen move xen-mapcache.c to hw/i386/xen/ 2017-04-25 11:04:34 -07:00
Makefile.objs hw/i386: Introduce AMD IOMMU 2016-09-24 01:02:00 +03:00
acpi-build.c hw/acpi-defs: replace leading X with x_ in FADT field names 2017-05-10 22:04:23 +03:00
acpi-build.h Use scripts/clean-includes to drop redundant qemu/typedefs.h 2016-03-22 22:20:16 +01:00
amd_iommu.c iommu: Don't crash if machine is not PC_MACHINE 2017-05-10 22:04:23 +03:00
amd_iommu.h i386: amd_iommu: fix MMIO register count and access 2016-12-16 01:14:38 +02:00
intel_iommu.c iommu: Don't crash if machine is not PC_MACHINE 2017-05-10 22:04:23 +03:00
intel_iommu_internal.h intel_iommu: enable remote IOTLB 2017-04-20 15:22:41 -03:00
kvmvapic.c tcg: drop global lock during TCG code execution 2017-02-24 10:32:45 +00:00
multiboot.c multiboot: copy the cmdline verbatim, unescape module strings 2016-12-22 16:00:26 +01:00
multiboot.h refer to FWCfgState explicitly 2013-06-02 18:14:02 +03:00
pc.c pc/fwcfg: unbreak migration from qemu-2.5 and qemu-2.6 during firmware boot 2017-05-10 22:04:23 +03:00
pc_piix.c pc: add 2.10 machine type 2017-05-10 22:04:23 +03:00
pc_q35.c pc: add 2.10 machine type 2017-05-10 22:04:23 +03:00
pc_sysfw.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
pci-assign-load-rom.c pci-assign: avoid pointless stat 2017-01-24 23:26:53 +03:00
trace-events intel_iommu: enable remote IOTLB 2017-04-20 15:22:41 -03:00
x86-iommu.c intel_iommu: support device iotlb descriptor 2017-01-10 05:56:58 +02:00