xemu/hw
David Gibson 508ce5eb00 vfio: Allow hotplug of containers onto existing guest IOMMU mappings
At present the memory listener used by vfio to keep host IOMMU mappings
in sync with the guest memory image assumes that if a guest IOMMU
appears, then it has no existing mappings.

This may not be true if a VFIO device is hotplugged onto a guest bus
which didn't previously include a VFIO device, and which has existing
guest IOMMU mappings.

Therefore, use the memory_region_register_iommu_notifier_replay()
function in order to fix this case, replaying existing guest IOMMU
mappings, bringing the host IOMMU into sync with the guest IOMMU.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2015-10-05 12:39:47 -06:00
..
9pfs virtio: get_features() can fail 2015-07-27 18:11:53 +03:00
acpi hw/acpi/ich9: clean up stale comment about KVM not supporting SMM 2015-07-27 22:44:47 +03:00
alpha Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
arm arm: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
audio typofixes - v4 2015-09-11 10:45:43 +03:00
block Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
bt bt: remove muldiv64() 2015-09-25 14:56:22 +02:00
char maint: avoid useless "if (foo) free(foo)" pattern 2015-09-11 10:21:38 +03:00
core Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
cpu hw/cpu/{a15mpcore, a9mpcore}: Handle missing has_el3 CPU props gracefully 2015-09-14 14:39:49 +01:00
cris cris: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
display Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
dma * Support for jemalloc 2015-09-14 16:13:16 +01:00
gpio i.MX: Add GPIO device 2015-09-14 14:39:49 +01:00
i2c i.MX: Add I2C controller emulator 2015-09-07 10:39:30 +01:00
i386 pc: memhp: force gaps between DIMM's GPA 2015-10-02 17:04:32 +03:00
ide ahci: clean up initial d2h semantics 2015-09-18 10:58:56 -04:00
input Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
intc hmp: implemented io apic dump state for TCG 2015-09-25 12:04:42 +02:00
ipack pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
isa i8257: remove cpu_request_exit irq 2015-09-09 15:34:53 +02:00
lm32 lm32: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
m68k m68k: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
mem memhp: extend address auto assignment to support gaps 2015-10-02 17:04:32 +03:00
microblaze mb: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
mips * First batch of MAINTAINERS updates 2015-09-25 21:52:30 +01:00
misc mac_dbdma: always clear FLUSH bit once DBDMA channel flush is complete 2015-09-20 22:48:38 +02:00
moxie moxie: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
net virtio-net: correctly drop truncated packets 2015-10-01 16:16:52 +03:00
nvram maint: avoid useless "if (foo) free(foo)" pattern 2015-09-11 10:21:38 +03:00
openrisc * First batch of MAINTAINERS updates 2015-09-25 21:52:30 +01:00
pci Fix bad error handling after memory_region_init_ram() 2015-09-18 14:39:29 +02:00
pci-bridge hw/pci-bridge: format special OFW unit address for PXB host 2015-06-23 22:58:36 +02:00
pci-host PPC: e500 pci host: Fix ATMUs register reads 2015-09-20 22:48:39 +02:00
pcmcia hmp: Remove "info pcmcia" 2014-10-24 12:19:11 +01:00
ppc memhp: extend address auto assignment to support gaps 2015-10-02 17:04:32 +03:00
s390x * First batch of MAINTAINERS updates 2015-09-25 21:52:30 +01:00
scsi vhost-scsi: include linux/vhost.h 2015-09-25 12:04:41 +02:00
sd typofixes - v4 2015-09-11 10:45:43 +03:00
sh4 Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
smbios smbios: add smbios 3.0 support 2015-09-07 10:39:28 +01:00
sparc sparc: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:44 +02:00
sparc64 sparc: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:44 +02:00
ssi arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
timer hpet: remove muldiv64() 2015-09-25 14:56:05 +02:00
tpm maint: remove unused include for dirent.h 2015-09-11 10:21:38 +03:00
tricore tricore: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:44 +02:00
unicore32 Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
usb libcacard: use the standalone project 2015-09-23 23:34:17 +02:00
vfio vfio: Allow hotplug of containers onto existing guest IOMMU mappings 2015-10-05 12:39:47 -06:00
virtio virtio: Notice when the system doesn't support MSIx at all 2015-10-01 16:16:52 +03:00
watchdog i6300esb: remove muldiv64() 2015-09-25 14:52:17 +02:00
xen typofixes - v4 2015-09-11 10:45:43 +03:00
xenpv Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
xtensa xtensa: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:44 +02:00
Makefile.objs smbios: move smbios code into a common folder 2015-08-13 14:08:30 +03:00