qemu/hw/misc
Markus Armbruster 62a830b688 ivshmem: Require master to have ID zero
Migration with ivshmem needs to be carefully orchestrated to work.
Exactly one peer (the "master") migrates to the destination, all other
peers need to unplug (and disconnect), migrate, plug back (and
reconnect).  This is sort of documented in qemu-doc.

If peers connect on the destination before migration completes, the
shared memory can get messed up.  This isn't documented anywhere.  Fix
that in qemu-doc.

To avoid messing up register IVPosition on migration, the server must
assign the same ID on source and destination.  ivshmem-spec.txt leaves
ID assignment unspecified, however.

Amend ivshmem-spec.txt to require the first client to receive ID zero.
The example ivshmem-server complies: it always assigns the first
unused ID.

For a bit of additional safety, enforce ID zero for the master.  This
does nothing when we're not using a server, because the ID is zero for
all peers then.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <1458066895-20632-40-git-send-email-armbru@redhat.com>
2016-03-21 21:29:03 +01:00
..
macio dbdma: warn when using unassigned channel 2016-02-28 16:19:02 +11:00
a9scu.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
applesmc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
arm11scu.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
arm_integrator_debug.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
arm_l2x0.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
arm_sysctl.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
bcm2835_mbox.c bcm2835_mbox/property: replace ldl_phys/stl_phys with endian-specific accesses 2016-03-04 11:30:18 +00:00
bcm2835_property.c bcm2835_property: implement framebuffer control/configuration properties 2016-03-16 17:42:18 +00:00
cbus.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
debugexit.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
eccmemctl.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
edu.c qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
exynos4210_pmu.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
hyperv_testdev.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
imx6_ccm.c i.MX: Add i.MX6 CCM and ANALOG device. 2016-03-16 17:42:18 +00:00
imx25_ccm.c i.MX: Add the CLK_IPG_HIGH clock 2016-03-16 17:42:18 +00:00
imx31_ccm.c i.MX: Add the CLK_IPG_HIGH clock 2016-03-16 17:42:18 +00:00
imx_ccm.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
ivshmem.c ivshmem: Require master to have ID zero 2016-03-21 21:29:03 +01:00
Makefile.objs i.MX: Add i.MX6 CCM and ANALOG device. 2016-03-16 17:42:18 +00:00
max111x.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
milkymist-hpdmc.c lm32: Clean up includes 2016-01-29 15:07:22 +00:00
milkymist-pfpu.c lm32: Clean up includes 2016-01-29 15:07:22 +00:00
mst_fpga.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_clk.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_gpmc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_l4.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_sdrc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
omap_tap.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
pc-testdev.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
pci-testdev.c pci: Clean up includes 2016-01-29 15:07:24 +00:00
puv3_pm.c unicore: Clean up includes 2016-01-29 15:07:22 +00:00
pvpanic.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
sga.c x86: Clean up includes 2016-01-29 15:07:22 +00:00
slavio_misc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
stm32f2xx_syscfg.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
tmp105.c qom: Swap 'name' next to visitor in ObjectPropertyAccessor 2016-02-08 17:29:56 +01:00
tmp105.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
vmport.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00
zynq_slcr.c arm: Clean up includes 2016-01-29 15:07:23 +00:00
zynq-xadc.c hw/misc: Clean up includes 2016-01-29 15:07:24 +00:00