S390: fix kernel_commandline handling
authorChristian Borntraeger <borntraeger@de.ibm.com>
Sun, 22 Apr 2012 23:52:19 +0000 (23:52 +0000)
committerAlexander Graf <agraf@suse.de>
Tue, 1 May 2012 19:04:06 +0000 (21:04 +0200)
The current handling of kernel parameters is broken. The pointer
is always valid, even if no -kernel or -append is specified.
We must check if the kernel rom address is valid instead,
otherwise qemu might segfault.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/s390-virtio.c

index 1ebe70d..c79784c 100644 (file)
@@ -274,7 +274,7 @@ static void s390_init(ram_addr_t my_ram_size,
         memcpy(rom_ptr(INITRD_PARM_SIZE), &initrd_size, 8);
     }
 
-    if (kernel_cmdline) {
+    if (rom_ptr(KERN_PARM_AREA)) {
         /* we have to overwrite values in the kernel image, which are "rom" */
         memcpy(rom_ptr(KERN_PARM_AREA), kernel_cmdline,
                strlen(kernel_cmdline) + 1);