qemu/hw/i386
Peter Xu c28b535d08 intel_iommu: handle invalid ce for shadow sync
We should handle VTD_FR_CONTEXT_ENTRY_P properly when synchronizing
shadow page tables.  Having invalid context entry there is perfectly
valid when we move a device out of an existing domain.  When that
happens, instead of posting an error we invalidate the whole region.

Without this patch, QEMU will crash if we do these steps:

(1) start QEMU with VT-d IOMMU and two 10G NICs (ixgbe)
(2) bind the NICs with vfio-pci in the guest
(3) start testpmd with the NICs applied
(4) stop testpmd
(5) rebind the NIC back to ixgbe kernel driver

The patch should fix it.

Reported-by: Pei Zhang <pezhang@redhat.com>
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1627272
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2018-11-05 13:24:02 -05:00
..
kvm kvmclock: run KVM_KVMCLOCK_CTRL ioctl in vcpu thread 2018-10-02 19:09:13 +02:00
xen hw/xen: Use the IEC binary prefix definitions 2018-07-02 15:41:13 +02:00
acpi-build.c pc: acpi: revert back to 1 SRAT entry for hotpluggable area 2018-09-07 17:05:18 -04: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: Add IOMMU index argument to translate method 2018-06-15 15:23:34 +01:00
amd_iommu.h hw/i386: Fix AMDVI GATS and HATS encodings 2018-06-26 21:58:03 +03:00
intel_iommu_internal.h intel-iommu: Extend address width to 48 bits 2018-01-18 21:52:38 +02:00
intel_iommu.c intel_iommu: handle invalid ce for shadow sync 2018-11-05 13:24:02 -05:00
kvmvapic.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
Makefile.objs hw/i386: make IOMMUs configurable via default-configs/ 2018-03-12 16:12:46 +01:00
multiboot.c Drop "qemu:" prefix from error_report() arguments 2018-09-24 17:13:07 +02:00
multiboot.h
pc_piix.c hw/i386: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
pc_q35.c hw/i386: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
pc_sysfw.c hw/i386: Use the IEC binary prefix definitions 2018-07-02 15:41:16 +02:00
pc.c pc-dimm: pass PCDIMMDevice to pc_dimm_.*plug 2018-10-24 06:44:59 -03:00
trace-events intel-iommu: replace more vtd_err_* traces 2018-08-27 15:09:20 +02:00
vmmouse.c hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
vmport.c hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
x86-iommu.c x86_iommu: check if machine has PCI bus 2018-01-18 21:52:38 +02:00