qemu/hw/i386
Peter Xu 28cf553afe intel_iommu: Sanity check vfio-pci config on machine init done
This check was previously only happened when the IOMMU is enabled in
the guest.  It was always too late because the enabling of IOMMU
normally only happens during the boot of guest OS.  It means that we
can bail out and exit directly during the guest OS boots if the
configuration of devices are not supported.  Or, if the guest didn't
enable vIOMMU at all, then the user can use the guest normally but as
long as it reconfigure the guest OS to enable the vIOMMU then reboot,
the user will see the panic right after the reset when the next boot
starts.

Let's make this failure even earlier so that we force the user to use
caching-mode for vfio-pci devices when with the vIOMMU.  So the user
won't get surprise at least during execution of the guest, which seems
a bit nicer.

This will affect some user who didn't enable vIOMMU in the guest OS
but was using vfio-pci and the vtd device in the past.  However I hope
it's not a majority because not enabling vIOMMU with the device
attached is actually meaningless.

We still keep the old assertion for safety so far because the hotplug
path could still reach it, so far.

Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20190916080718.3299-2-peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2019-09-16 06:57:24 -04:00
..
kvm migration: Do not re-read the clock on pre_save in case of paused guest 2019-09-03 14:39:46 -03:00
xen xen: cleanup IOREQ server on exit 2019-08-27 14:18:28 +01:00
acpi-build.c numa: move numa global variable have_numa_distance into MachineState 2019-09-03 11:26:55 -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 Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
amd_iommu.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
fw_cfg.c hw/i386: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
fw_cfg.h hw/i386: Extract fw_cfg definitions to local "fw_cfg.h" 2019-05-23 14:10:31 +02:00
intel_iommu_internal.h intel_iommu: Drop extended root field 2019-04-02 11:49:14 -04:00
intel_iommu.c intel_iommu: Sanity check vfio-pci config on machine init done 2019-09-16 06:57:24 -04:00
Kconfig hw/i386: also turn off VMMOUSE is VMPORT is disabled 2019-07-23 15:53:25 +01:00
kvmvapic.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
Makefile.objs hw/i386: Implement fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
multiboot.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
multiboot.h refer to FWCfgState explicitly 2013-06-02 18:14:02 +03:00
pc_piix.c Various trivial fixes 2019-08-21 16:59:22 +01:00
pc_q35.c hw: add compat machines for 4.2 2019-08-21 11:32:11 +10:00
pc_sysfw.c Include hw/boards.h a bit less 2019-08-16 13:31:53 +02:00
pc.c x86: do not advertise die-id in query-hotpluggbale-cpus if '-smp dies' is not set 2019-09-03 14:39:46 -03:00
trace-events intel_iommu: Drop extended root field 2019-04-02 11:49:14 -04:00
vmmouse.c i386/vmmouse: Properly reset state 2019-09-03 14:39:46 -03:00
vmport.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
x86-iommu.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00