From 609d8661171760c7ead04f64359d47a77c31d474 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 23 Apr 2021 10:30:51 +0200 Subject: [PATCH 29/39] pc-bios/s390-ccw: Use reset_psw pointer instead of hard-coded null pointer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RH-Author: Jon Maloy RH-MergeRequest: 24: v7: Add support for building qemu-kvm with clang and safe-stack RH-Commit: [2/11] c65a986104a1830847e772879ca6eaf76c86b2f3 (jmaloy/qemu-kvm-centos-jon) RH-Bugzilla: 1939509 1940132 RH-Acked-by: Danilo Cesar Lemes de Paula RH-Acked-by: Thomas Huth RH-Acked-by: Cornelia Huck When compiling the s390-ccw bios with clang, it emits a warning like this: pc-bios/s390-ccw/jump2ipl.c:86:9: warning: indirection of non-volatile null pointer will be deleted, not trap [-Wnull-dereference] if (*((uint64_t *)0) & RESET_PSW_MASK) { ^~~~~~~~~~~~~~~~ pc-bios/s390-ccw/jump2ipl.c:86:9: note: consider using __builtin_trap() or qualifying pointer with 'volatile' We could add a "volatile" here to shut it up, but on the other hand, we also have a pointer variable called "reset_psw" in this file already that points to the PSW at address 0, so we can simply use that pointer variable instead. Reviewed-by: Philippe Mathieu-Daudé Message-Id: <20210423142440.582188-1-thuth@redhat.com> Reviewed-by: Janosch Frank Signed-off-by: Thomas Huth (cherry picked from commit ff77712a8a2e15e5901fad35b9a6bb65974b2e4a) Signed-off-by: Jon Maloy Signed-off-by: Miroslav Rezanina --- pc-bios/s390-ccw/jump2ipl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pc-bios/s390-ccw/jump2ipl.c b/pc-bios/s390-ccw/jump2ipl.c index b9c70d64a5..73e4367e09 100644 --- a/pc-bios/s390-ccw/jump2ipl.c +++ b/pc-bios/s390-ccw/jump2ipl.c @@ -82,8 +82,8 @@ void jump_to_low_kernel(void) jump_to_IPL_code(KERN_IMAGE_START); } - /* Trying to get PSW at zero address */ - if (*((uint64_t *)0) & RESET_PSW_MASK) { + /* Trying to get PSW at zero address (pointed to by reset_psw) */ + if (*reset_psw & RESET_PSW_MASK) { /* * Surely nobody will try running directly from lowcore, so * let's use 0 as an indication that we want to load the reset -- 2.27.0