| From dca5244d2f5b94f1809f0c02a549edf41ccd5493 Mon Sep 17 00:00:00 2001 |
| From: Will Deacon <will@kernel.org> |
| Date: Tue, 12 Jan 2021 22:48:32 +0000 |
| Subject: compiler.h: Raise minimum version of GCC to 5.1 for arm64 |
| |
| From: Will Deacon <will@kernel.org> |
| |
| commit dca5244d2f5b94f1809f0c02a549edf41ccd5493 upstream. |
| |
| GCC versions >= 4.9 and < 5.1 have been shown to emit memory references |
| beyond the stack pointer, resulting in memory corruption if an interrupt |
| is taken after the stack pointer has been adjusted but before the |
| reference has been executed. This leads to subtle, infrequent data |
| corruption such as the EXT4 problems reported by Russell King at the |
| link below. |
| |
| Life is too short for buggy compilers, so raise the minimum GCC version |
| required by arm64 to 5.1. |
| |
| Reported-by: Russell King <linux@armlinux.org.uk> |
| Suggested-by: Arnd Bergmann <arnd@kernel.org> |
| Signed-off-by: Will Deacon <will@kernel.org> |
| Tested-by: Nathan Chancellor <natechancellor@gmail.com> |
| Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> |
| Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> |
| Acked-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: <stable@vger.kernel.org> |
| Cc: Theodore Ts'o <tytso@mit.edu> |
| Cc: Florian Weimer <fweimer@redhat.com> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Nick Desaulniers <ndesaulniers@google.com> |
| Link: https://lore.kernel.org/r/20210105154726.GD1551@shell.armlinux.org.uk |
| Link: https://lore.kernel.org/r/20210112224832.10980-1-will@kernel.org |
| Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> |
| [will: backport to 4.19.y/5.4.y] |
| Signed-off-by: Will Deacon <will@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| include/linux/compiler-gcc.h | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| --- a/include/linux/compiler-gcc.h |
| +++ b/include/linux/compiler-gcc.h |
| @@ -12,6 +12,12 @@ |
| |
| #if GCC_VERSION < 40600 |
| # error Sorry, your compiler is too old - please upgrade it. |
| +#elif defined(CONFIG_ARM64) && GCC_VERSION < 50100 |
| +/* |
| + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63293 |
| + * https://lore.kernel.org/r/20210107111841.GN1551@shell.armlinux.org.uk |
| + */ |
| +# error Sorry, your version of GCC is too old - please use 5.1 or newer. |
| #endif |
| |
| /* |