summaryrefslogtreecommitdiff
path: root/arch/s390
diff options
context:
space:
mode:
authorPhilipp Rudo <prudo@linux.ibm.com>2018-05-16 15:06:32 +0300
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2018-05-18 08:24:35 +0300
commitd8de7565735af5a95057c83eedb38e36cfaa04b5 (patch)
tree25303d5c72148d89611f75023b362200d1122a3a /arch/s390
parent3acf4e395260e3bd30a6fa29ba7eada4bf7566ca (diff)
downloadlinux-d8de7565735af5a95057c83eedb38e36cfaa04b5.tar.xz
s390/purgatory: Fix endless interrupt loop
New compilers use the floating-point registers as spill registers when there is high register pressure. In the purgatory however, the afp control bit is not set. This leads to an exception whenever a floating-point instruction is used, which again causes an interrupt loop. Forbid the compiler to use floating-point instructions by adding -msoft-float to KBUILD_CFLAGS. Signed-off-by: Philipp Rudo <prudo@linux.ibm.com> Fixes: 840798a1f529 (s390/kexec_file: Add purgatory) Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/purgatory/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/purgatory/Makefile b/arch/s390/purgatory/Makefile
index e9525bc1b4a6..1ace023cbdce 100644
--- a/arch/s390/purgatory/Makefile
+++ b/arch/s390/purgatory/Makefile
@@ -21,7 +21,7 @@ LDFLAGS_purgatory.ro += -z nodefaultlib
KBUILD_CFLAGS := -fno-strict-aliasing -Wall -Wstrict-prototypes
KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding
-KBUILD_CFLAGS += -c -MD -Os -m64
+KBUILD_CFLAGS += -c -MD -Os -m64 -msoft-float
KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
$(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE