qemu-patch-raspberry4/hw
Eduardo Habkost de796d93f5 pc: Set hw_version on all machine classes
In 2012, QEMU had a bug where it exposed QEMU version information to the
guest, meaning a QEMU upgrade would expose different hardware to the
guest OS even if the same machine-type is being used.

The bug was fixed by commit 93bfef4c6e, on
all machines up to pc-1.0. But we kept introducing the same bug on all
newer machines since then. That means we are breaking guest ABI every
time QEMU was upgraded.

Fix this by setting the hw_version on all PC machines, making sure the
hardware won't change when upgrading QEMU.

Note that QEMU_VERSION was "1.0" in QEMU 1.0, but starting on QEMU
1.1.0, it started following the "x.y.0" pattern. We have to follow it,
to make sure we use the right QEMU_VERSION string from each QEMU
release.

The 2.5 machine classes could have hw_version unset, because the default
value for qemu_get_version() is QEMU_VERSION. But I decided to set it
explicitly to QEMU_VERSION so we don't forget to update it to "2.5.0"
after we release 2.5.0 and create a 2.6 machine class.

Reported-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <1446233769-7892-2-git-send-email-ehabkost@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-11-04 15:02:30 +01:00
..
9pfs coroutine: move into libqemuutil.a library 2015-10-20 14:59:04 +01:00
acpi pc: memhp: do not emit inserting event for coldplugged DIMMs 2015-10-29 11:05:24 +02:00
alpha Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
arm hw/arm/virt: don't use a15memmap directly 2015-10-27 12:00:50 +00:00
audio Remove macros IO_READ_PROTO and IO_WRITE_PROTO 2015-10-19 09:03:53 +02:00
block virtio-blk: convert to virtqueue_map 2015-10-29 11:05:24 +02:00
bt bt: remove muldiv64() 2015-09-25 14:56:22 +02:00
char virtio-serial: convert to virtio_map 2015-10-29 11:05:24 +02:00
core Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
cpu icc_bus: drop the unused files 2015-10-02 16:22:02 -03:00
cris cris: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
display vmsvga: more cursor checks 2015-10-20 09:26:36 +02:00
dma * Support for jemalloc 2015-09-14 16:13:16 +01:00
gpio i.MX: Standardize i.MX GPIO debug 2015-10-27 15:59:46 +00:00
i2c i.MX: Standardize i.MX I2C debug 2015-10-27 15:59:46 +00:00
i386 pc: Set hw_version on all machine classes 2015-11-04 15:02:30 +01:00
ide macio-ide: add to storage category 2015-10-23 12:35:18 +11:00
input adb: add to input category 2015-10-23 12:35:17 +11:00
intc i.MX: Standardize i.MX AVIC debug 2015-10-27 15:59:46 +00:00
ipack pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
isa hw/isa/lpc_ich9: inject the SMI on the VCPU that is writing to APM_CNT 2015-10-22 14:39:09 +03: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 Revert "memhp: extend address auto assignment to support gaps" 2015-10-29 11:11:07 +02: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 i.MX: Standardize i.MX CCM debug 2015-10-27 15:59:46 +00:00
moxie moxie: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
net i.MX: Standardize i.MX FEC debug 2015-10-27 15:59:46 +00:00
nvram macio-nvram: add to misc category 2015-10-23 12:35:18 +11:00
openrisc * First batch of MAINTAINERS updates 2015-09-25 21:52:30 +01:00
pci enable multi-function hot-add 2015-10-29 11:17:53 +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 uninorth: add to bridge category 2015-10-23 12:35:18 +11:00
pcmcia hw: do not pass NULL to memory_region_init from instance_init 2015-10-09 15:25:56 +02:00
ppc Revert "memhp: extend address auto assignment to support gaps" 2015-10-29 11:11:07 +02:00
s390x s390x/cmma: clean up cmma reset 2015-10-21 12:21:30 +02:00
scsi virtio-scsi: convert to virtqueue_map 2015-10-29 11:05:24 +02:00
sd sdhci.c: Limit the maximum block size 2015-10-12 11:17:45 +01: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 i.MX: Standardize i.MX GPT debug 2015-10-27 15:59:46 +00: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 hw/usb-storage: Check whether BB is inserted 2015-10-23 18:18:23 +02:00
vfio kvm: Pass PCI device pointer to MSI routing functions 2015-10-19 10:13:07 +02:00
virtio virtio: drop virtqueue_map_sg 2015-10-29 11:05:24 +02:00
watchdog i6300esb: remove muldiv64() 2015-09-25 14:52:17 +02:00
xen Qemu/Xen: Fix early freeing MSIX MMIO memory region 2015-10-26 11:32:18 +00:00
xenpv Use DEFINE_MACHINE() to register all machines 2015-09-19 16:40:15 +02:00
xtensa target-xtensa: xtfpga: attach FLASH to system IO 2015-10-21 21:28:33 +03:00
Makefile.objs smbios: move smbios code into a common folder 2015-08-13 14:08:30 +03:00