]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop queue-5.9/compiler.h-fix-barrier_data-on-clang.patch
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Nov 2020 12:07:17 +0000 (13:07 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 17 Nov 2020 12:07:17 +0000 (13:07 +0100)
queue-5.9/compiler.h-fix-barrier_data-on-clang.patch [deleted file]
queue-5.9/series

diff --git a/queue-5.9/compiler.h-fix-barrier_data-on-clang.patch b/queue-5.9/compiler.h-fix-barrier_data-on-clang.patch
deleted file mode 100644 (file)
index 1e47727..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From 3347acc6fcd4ee71ad18a9ff9d9dac176b517329 Mon Sep 17 00:00:00 2001
-From: Arvind Sankar <nivedita@alum.mit.edu>
-Date: Fri, 13 Nov 2020 22:51:59 -0800
-Subject: compiler.h: fix barrier_data() on clang
-
-From: Arvind Sankar <nivedita@alum.mit.edu>
-
-commit 3347acc6fcd4ee71ad18a9ff9d9dac176b517329 upstream.
-
-Commit 815f0ddb346c ("include/linux/compiler*.h: make compiler-*.h
-mutually exclusive") neglected to copy barrier_data() from
-compiler-gcc.h into compiler-clang.h.
-
-The definition in compiler-gcc.h was really to work around clang's more
-aggressive optimization, so this broke barrier_data() on clang, and
-consequently memzero_explicit() as well.
-
-For example, this results in at least the memzero_explicit() call in
-lib/crypto/sha256.c:sha256_transform() being optimized away by clang.
-
-Fix this by moving the definition of barrier_data() into compiler.h.
-
-Also move the gcc/clang definition of barrier() into compiler.h,
-__memory_barrier() is icc-specific (and barrier() is already defined
-using it in compiler-intel.h) and doesn't belong in compiler.h.
-
-[rdunlap@infradead.org: fix ALPHA builds when SMP is not enabled]
-
-Link: https://lkml.kernel.org/r/20201101231835.4589-1-rdunlap@infradead.org
-Fixes: 815f0ddb346c ("include/linux/compiler*.h: make compiler-*.h mutually exclusive")
-Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
-Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Tested-by: Nick Desaulniers <ndesaulniers@google.com>
-Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
-Reviewed-by: Kees Cook <keescook@chromium.org>
-Cc: <stable@vger.kernel.org>
-Link: https://lkml.kernel.org/r/20201014212631.207844-1-nivedita@alum.mit.edu
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- include/asm-generic/barrier.h  |    1 +
- include/linux/compiler-clang.h |    6 ------
- include/linux/compiler-gcc.h   |   19 -------------------
- include/linux/compiler.h       |   18 ++++++++++++++++--
- 4 files changed, 17 insertions(+), 27 deletions(-)
-
---- a/include/asm-generic/barrier.h
-+++ b/include/asm-generic/barrier.h
-@@ -13,6 +13,7 @@
- #ifndef __ASSEMBLY__
-+#include <linux/compiler.h>
- #include <asm/rwonce.h>
- #ifndef nop
---- a/include/linux/compiler-clang.h
-+++ b/include/linux/compiler-clang.h
-@@ -52,12 +52,6 @@
- #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
- #endif
--/* The following are for compatibility with GCC, from compiler-gcc.h,
-- * and may be redefined here because they should not be shared with other
-- * compilers, like ICC.
-- */
--#define barrier() __asm__ __volatile__("" : : : "memory")
--
- #if __has_feature(shadow_call_stack)
- # define __noscs      __attribute__((__no_sanitize__("shadow-call-stack")))
- #endif
---- a/include/linux/compiler-gcc.h
-+++ b/include/linux/compiler-gcc.h
-@@ -15,25 +15,6 @@
- # error Sorry, your compiler is too old - please upgrade it.
- #endif
--/* Optimization barrier */
--
--/* The "volatile" is due to gcc bugs */
--#define barrier() __asm__ __volatile__("": : :"memory")
--/*
-- * This version is i.e. to prevent dead stores elimination on @ptr
-- * where gcc and llvm may behave differently when otherwise using
-- * normal barrier(): while gcc behavior gets along with a normal
-- * barrier(), llvm needs an explicit input variable to be assumed
-- * clobbered. The issue is as follows: while the inline asm might
-- * access any memory it wants, the compiler could have fit all of
-- * @ptr into memory registers instead, and since @ptr never escaped
-- * from that, it proved that the inline asm wasn't touching any of
-- * it. This version works well with both compilers, i.e. we're telling
-- * the compiler that the inline asm absolutely may see the contents
-- * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
-- */
--#define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
--
- /*
-  * This macro obfuscates arithmetic on a variable address so that gcc
-  * shouldn't recognize the original var, and make assumptions about it.
---- a/include/linux/compiler.h
-+++ b/include/linux/compiler.h
-@@ -80,11 +80,25 @@ void ftrace_likely_update(struct ftrace_
- /* Optimization barrier */
- #ifndef barrier
--# define barrier() __memory_barrier()
-+/* The "volatile" is due to gcc bugs */
-+# define barrier() __asm__ __volatile__("": : :"memory")
- #endif
- #ifndef barrier_data
--# define barrier_data(ptr) barrier()
-+/*
-+ * This version is i.e. to prevent dead stores elimination on @ptr
-+ * where gcc and llvm may behave differently when otherwise using
-+ * normal barrier(): while gcc behavior gets along with a normal
-+ * barrier(), llvm needs an explicit input variable to be assumed
-+ * clobbered. The issue is as follows: while the inline asm might
-+ * access any memory it wants, the compiler could have fit all of
-+ * @ptr into memory registers instead, and since @ptr never escaped
-+ * from that, it proved that the inline asm wasn't touching any of
-+ * it. This version works well with both compilers, i.e. we're telling
-+ * the compiler that the inline asm absolutely may see the contents
-+ * of @ptr. See also: https://llvm.org/bugs/show_bug.cgi?id=15495
-+ */
-+# define barrier_data(ptr) __asm__ __volatile__("": :"r"(ptr) :"memory")
- #endif
- /* workaround for GCC PR82365 if needed */
index aaa2127f700d9fd314f66f041f1d929223516dd6..c84ccdef7a5838ac3062f452773708a80bea787d 100644 (file)
@@ -211,7 +211,6 @@ mm-compaction-stop-isolation-if-too-many-pages-are-isolated-and-we-have-pages-to
 mm-slub-fix-panic-in-slab_alloc_node.patch
 mm-vmscan-fix-nr_isolated_file-corruption-on-64-bit.patch
 mm-gup-use-unpin_user_pages-in-__gup_longterm_locked.patch
-compiler.h-fix-barrier_data-on-clang.patch
 revert-kernel-reboot.c-convert-simple_strtoul-to-kstrtoint.patch
 reboot-fix-overflow-parsing-reboot-cpu-number.patch
 hugetlbfs-fix-anon-huge-page-migration-race.patch