qemu-e2k/hw
Thomas Huth 3b8afb41bc hw/s390x/ipl: Fix alignment problems of S390IPLState members
The IplParameterBlock and QemuIplParameters structures are declared with
QEMU_PACKED, so the compiler assumes that the structures do not need to
be aligned in memory. Since the are listed after a "bool" within the
S390IPLState, the IplParameterBlock and QemuIplParameters are also indeed
mis-aligned in memory. This causes problems on Sparc during migration, since
we use VMSTATE_UINT16 in vmstate_iplb to access the devno member for example,
and the corresponding migration functions (like qemu_get_be16s) then try to
access a 16-bit value from a misaligned memory address.
The easiest solution to fix this problem is to move the packed structures
to the beginning of the S390IPLState, right after the DeviceState of course
which has to stay first for QOM reasons. But since DeviceState is a non-packed
struct, we can be sure that it will be padded to the correct alignment at the
end. If not, the QEMU_BUILD_BUG_MSG in this patch will tell us.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1538036615-32542-2-git-send-email-thuth@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-10-04 10:32:38 +02:00
..
9pfs 9p: darwin: Explicitly cast comparisons of mode_t with -1 2018-06-29 12:32:10 +02:00
acpi pci, pc, virtio: fixes, features 2018-09-24 18:49:11 +01:00
adc
alpha change get_image_size return type to int64_t 2018-10-02 19:08:49 +02:00
arm hw/arm/aspeed: Add an Aspeed machine class 2018-09-25 15:13:24 +01:00
audio es1370: fix ADC_FRAMEADR and ADC_FRAMECNT 2018-10-02 18:47:55 +02:00
block block: Remove deprecated -drive option serial 2018-08-15 12:50:39 +02:00
bt
char virtio: do not take address of packed members 2018-10-02 19:09:13 +02:00
core change get_image_size return type to int64_t 2018-10-02 19:08:49 +02:00
cpu hw/cpu/a15mpcore: If CPU has EL2, enable it on the GIC and wire it up 2018-08-24 13:17:34 +01:00
cris hw/cris: Use the IEC binary prefix definitions 2018-07-02 15:41:15 +02:00
display qxl: support mono cursors with inverted colors 2018-09-27 08:10:07 +02:00
dma hw/dma/pl080: Remove hw_error() if DMA is enabled 2018-08-20 11:24:33 +01:00
gpio hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init 2018-06-01 15:14:31 +02:00
hppa change get_image_size return type to int64_t 2018-10-02 19:08:49 +02:00
i2c aspeed/i2c: Fix receive done interrupt handling 2018-09-25 14:14:07 +01:00
i386 kvmclock: run KVM_KVMCLOCK_CTRL ioctl in vcpu thread 2018-10-02 19:09:13 +02:00
ide replay: replay BH for IDE trim operation 2018-10-02 19:09:13 +02:00
input ps2: prevent changing irq state on save and load 2018-10-02 18:47:55 +02:00
intc hw/intc/arm_gic: Drop GIC_BASE_IRQ macro 2018-09-25 15:13:24 +01:00
ipack hw/ipack: Use the IEC binary prefix definitions 2018-07-02 15:41:12 +02:00
ipmi ipmi: Use proper struct reference for BT vmstate 2018-08-23 18:46:25 +02:00
isa i2c: pm_smbus: Add the ability to force block transfer enable 2018-08-23 18:46:25 +02:00
lm32 hw/lm32: Use the IEC binary prefix definitions 2018-07-02 15:41:15 +02:00
m68k hw/m68k: Use the IEC binary prefix definitions 2018-07-02 15:41:14 +02:00
mem pc-dimm: assign and verify the "addr" property during pre_plug 2018-08-23 18:46:25 +02:00
microblaze hw/microblaze/xlnx-zynqmp-pmu: Fix introspection problem in 'xlnx, zynqmp-pmu-soc' 2018-07-23 15:21:25 +01:00
mips change get_image_size return type to int64_t 2018-10-02 19:08:49 +02:00
misc hw: edu: replace device name with macro 2018-10-02 19:09:12 +02:00
moxie change get_image_size return type to int64_t 2018-10-02 19:08:49 +02:00
net hw/net/pcnet-pci: Unify pcnet_ioport_read/write and pcnet_mmio_read/write 2018-09-25 15:13:24 +01:00
nios2 hw/nios2: Use the IEC binary prefix definitions 2018-07-02 15:41:15 +02:00
nvram hw/nvram/fw_cfg: Use memberwise copy of MemoryRegionOps struct 2018-10-02 19:09:14 +02:00
openrisc
pci qmp, hmp: add PCI subsystem id and vendor id to PCI info 2018-09-25 14:48:44 +01:00
pci-bridge hw/pci: add PCI resource reserve capability to legacy PCI bridge 2018-09-07 17:05:18 -04:00
pci-host ppc patch queue 2018-09-25 2018-09-25 13:30:45 +01:00
pcmcia
ppc ppc patch queue 2018-09-25 2018-09-25 13:30:45 +01:00
rdma config: split PVRDMA from RDMA 2018-08-18 18:01:34 +03:00
riscv Error reporting & miscellaneous patches for 2018-09-24 2018-09-25 11:37:39 +01:00
s390x hw/s390x/ipl: Fix alignment problems of S390IPLState members 2018-10-04 10:32:38 +02:00
scsi hw/scsi/mptendian: Avoid taking address of fields in packed structs 2018-10-02 19:09:14 +02:00
sd sdhci: add i.MX SD Stable Clock bit 2018-08-20 11:24:32 +01:00
sh4 hw/sh4: Use the IEC binary prefix definitions 2018-07-02 15:41:15 +02:00
smbios hw/smbios: Use the IEC binary prefix definitions 2018-07-02 15:41:12 +02:00
sparc sun4m: don't use legacy fw_cfg_init_mem() function 2018-08-20 19:18:31 +01:00
sparc64 sun4u: implement custom FWPathProvider 2018-09-14 09:18:11 +01:00
ssi aspeed/smc: fix some alignment issues 2018-09-25 15:13:24 +01:00
timer aspeed/timer: fix compile breakage with clang 3.4.2 2018-09-25 15:13:24 +01:00
tpm tpm: extend TPM TIS with state migration support 2018-05-24 12:07:04 -04:00
tricore hw/tricore: Use the IEC binary prefix definitions 2018-07-02 15:41:14 +02:00
unicore32
usb ohci: set effectively usb frame rate to 1kHz 2018-10-01 10:49:54 +02:00
vfio qemu-error: add {error, warn}_report_once_cond 2018-09-24 17:13:07 +02:00
virtio virtio: Return true from virtio_queue_empty if broken 2018-10-02 18:47:55 +02:00
watchdog qapi: Drop qapi_event_send_FOO()'s Error ** argument 2018-08-28 18:21:38 +02:00
xen xen: Don't use memory_region_init_ram_nomigrate() in pci_assign_dev_load_option_rom() 2018-06-22 13:28:42 +01:00
xenpv hw/xen: Use the IEC binary prefix definitions 2018-07-02 15:41:13 +02:00
xtensa hw/xtensa: Use the IEC binary prefix definitions 2018-07-02 15:41:14 +02:00
Makefile.objs hw: allow compiling out SCSI 2018-06-01 15:14:31 +02:00