qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [qemu-s390x] [PATCH for-2.11] pc-bios/s390-ccw: Fix problem with inv


From: Thomas Huth
Subject: Re: [qemu-s390x] [PATCH for-2.11] pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting
Date: Mon, 20 Nov 2017 10:18:38 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

On 20.11.2017 09:48, Christian Borntraeger wrote:
> Thomas,
> 
> does this patch help as well?
> 
> diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
> index 6d0c2ee..2687590 100644
> --- a/pc-bios/s390-ccw/Makefile
> +++ b/pc-bios/s390-ccw/Makefile
> @@ -12,7 +12,7 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
>  OBJECTS = start.o main.o bootmap.o sclp.o virtio.o virtio-scsi.o 
> virtio-blkdev.o
>  QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
>  QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
> -QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
> +QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing 
> -fno-zero-initialized-in-bss
>  QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
>  LDFLAGS += -Wl,-pie -nostdlib

No, that alone does not help, the default_scsi_device variable is still
in the normal .bss section in that case (you can also check that with
objdump for example). You'd have to apply this patch on top to fix it
that way:

diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c
index c92f5d3..64ab095 100644
--- a/pc-bios/s390-ccw/virtio-scsi.c
+++ b/pc-bios/s390-ccw/virtio-scsi.c
@@ -15,7 +15,7 @@
 #include "scsi.h"
 #include "virtio-scsi.h"

-static ScsiDevice default_scsi_device;
+static ScsiDevice default_scsi_device = { 0 };
 static VirtioScsiCmdReq req;
 static VirtioScsiCmdResp resp;

... then the variable is in the .data section instead.

But since the problem with other uninitialized .bss variables is then
still pending, I think we should rather go with my patch for 2.11 and
fix future problems properly in v2.12 by initializing the complete .bss
to zero in the start.S file.

 Thomas



reply via email to

[Prev in Thread] Current Thread [Next in Thread]