From: Greg Kroah-Hartman Date: Wed, 15 Apr 2020 17:28:57 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v4.19.116~26 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=920c93b272c913b24bca802c05d21f1d6f1dafea;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: powerpc-make-setjmp-longjmp-signature-standard.patch --- diff --git a/queue-5.4/powerpc-make-setjmp-longjmp-signature-standard.patch b/queue-5.4/powerpc-make-setjmp-longjmp-signature-standard.patch new file mode 100644 index 00000000000..75cc34b3075 --- /dev/null +++ b/queue-5.4/powerpc-make-setjmp-longjmp-signature-standard.patch @@ -0,0 +1,73 @@ +From c17eb4dca5a353a9dbbb8ad6934fe57af7165e91 Mon Sep 17 00:00:00 2001 +From: Clement Courbet +Date: Mon, 30 Mar 2020 10:03:56 +0200 +Subject: powerpc: Make setjmp/longjmp signature standard + +From: Clement Courbet + +commit c17eb4dca5a353a9dbbb8ad6934fe57af7165e91 upstream. + +Declaring setjmp()/longjmp() as taking longs makes the signature +non-standard, and makes clang complain. In the past, this has been +worked around by adding -ffreestanding to the compile flags. + +The implementation looks like it only ever propagates the value +(in longjmp) or sets it to 1 (in setjmp), and we only call longjmp +with integer parameters. + +This allows removing -ffreestanding from the compilation flags. + +Fixes: c9029ef9c957 ("powerpc: Avoid clang warnings around setjmp and longjmp") +Cc: stable@vger.kernel.org # v4.14+ +Signed-off-by: Clement Courbet +Reviewed-by: Nathan Chancellor +Tested-by: Nathan Chancellor +Signed-off-by: Michael Ellerman +Link: https://lore.kernel.org/r/20200330080400.124803-1-courbet@google.com +Signed-off-by: Nathan Chancellor +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/include/asm/setjmp.h | 6 ++++-- + arch/powerpc/kernel/Makefile | 3 --- + arch/powerpc/xmon/Makefile | 3 --- + 3 files changed, 4 insertions(+), 8 deletions(-) + +--- a/arch/powerpc/include/asm/setjmp.h ++++ b/arch/powerpc/include/asm/setjmp.h +@@ -7,7 +7,9 @@ + + #define JMP_BUF_LEN 23 + +-extern long setjmp(long *) __attribute__((returns_twice)); +-extern void longjmp(long *, long) __attribute__((noreturn)); ++typedef long jmp_buf[JMP_BUF_LEN]; ++ ++extern int setjmp(jmp_buf env) __attribute__((returns_twice)); ++extern void longjmp(jmp_buf env, int val) __attribute__((noreturn)); + + #endif /* _ASM_POWERPC_SETJMP_H */ +--- a/arch/powerpc/kernel/Makefile ++++ b/arch/powerpc/kernel/Makefile +@@ -5,9 +5,6 @@ + + CFLAGS_ptrace.o += -DUTS_MACHINE='"$(UTS_MACHINE)"' + +-# Avoid clang warnings around longjmp/setjmp declarations +-CFLAGS_crash.o += -ffreestanding +- + ifdef CONFIG_PPC64 + CFLAGS_prom_init.o += $(NO_MINIMAL_TOC) + endif +--- a/arch/powerpc/xmon/Makefile ++++ b/arch/powerpc/xmon/Makefile +@@ -1,9 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 + # Makefile for xmon + +-# Avoid clang warnings around longjmp/setjmp declarations +-subdir-ccflags-y := -ffreestanding +- + GCOV_PROFILE := n + KCOV_INSTRUMENT := n + UBSAN_SANITIZE := n diff --git a/queue-5.4/series b/queue-5.4/series index 0108da25487..8feacd01200 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -214,3 +214,4 @@ powerpc-xive-fix-xmon-support-on-the-powernv-platform.patch powerpc-kprobes-ignore-traps-that-happened-in-real-mode.patch powerpc-64-prevent-stack-protection-in-early-boot.patch scsi-mpt3sas-fix-kernel-panic-observed-on-soft-hba-unplug.patch +powerpc-make-setjmp-longjmp-signature-standard.patch