When using -initrd in the virtio machine, we need to indicate the initrd start and size inside the kernel image. These parameters need to be stored in native endianness.
Signed-off-by: Alexander Graf <ag...@suse.de> Acked-by: Richard Henderson <r...@twiddle.net> Acked-by: Christian Borntraeger <borntrae...@de.ibm.com> --- hw/s390-virtio.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c index 85bd13e..52fad37 100644 --- a/hw/s390-virtio.c +++ b/hw/s390-virtio.c @@ -285,8 +285,8 @@ static void s390_init(QEMUMachineInitArgs *args) } /* we have to overwrite values in the kernel image, which are "rom" */ - memcpy(rom_ptr(INITRD_PARM_START), &initrd_offset, 8); - memcpy(rom_ptr(INITRD_PARM_SIZE), &initrd_size, 8); + stq_p(rom_ptr(INITRD_PARM_START), initrd_offset); + stq_p(rom_ptr(INITRD_PARM_SIZE), initrd_size); } if (rom_ptr(KERN_PARM_AREA)) { -- 1.6.0.2