]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.16-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Feb 2022 10:58:07 +0000 (11:58 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Feb 2022 10:58:07 +0000 (11:58 +0100)
added patches:
slab-remove-__alloc_size-attribute-from-__kmalloc_track_caller.patch

queue-5.16/series
queue-5.16/slab-remove-__alloc_size-attribute-from-__kmalloc_track_caller.patch [new file with mode: 0644]

index 6e9c8f0413cee7c300442207c53f22f724328e4f..6c4bd4999657d186e9e176af5606cdd07006d131 100644 (file)
@@ -3,3 +3,4 @@ cgroup-cpuset-fix-a-race-between-cpuset_attach-and-cpu-hotplug.patch
 cgroup-v1-correct-privileges-check-in-release_agent-writes.patch
 btrfs-tree-checker-check-item_size-for-inode_item.patch
 btrfs-tree-checker-check-item_size-for-dev_item.patch
+slab-remove-__alloc_size-attribute-from-__kmalloc_track_caller.patch
diff --git a/queue-5.16/slab-remove-__alloc_size-attribute-from-__kmalloc_track_caller.patch b/queue-5.16/slab-remove-__alloc_size-attribute-from-__kmalloc_track_caller.patch
new file mode 100644 (file)
index 0000000..d4fa8b6
--- /dev/null
@@ -0,0 +1,57 @@
+From 93dd04ab0b2b32ae6e70284afc764c577156658e Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Fri, 18 Feb 2022 14:13:58 +0100
+Subject: slab: remove __alloc_size attribute from __kmalloc_track_caller
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+commit 93dd04ab0b2b32ae6e70284afc764c577156658e upstream.
+
+Commit c37495d6254c ("slab: add __alloc_size attributes for better
+bounds checking") added __alloc_size attributes to a bunch of kmalloc
+function prototypes.  Unfortunately the change to __kmalloc_track_caller
+seems to cause clang to generate broken code and the first time this is
+called when booting, the box will crash.
+
+While the compiler problems are being reworked and attempted to be
+solved [1], let's just drop the attribute to solve the issue now.  Once
+it is resolved it can be added back.
+
+[1] https://github.com/ClangBuiltLinux/linux/issues/1599
+
+Fixes: c37495d6254c ("slab: add __alloc_size attributes for better bounds checking")
+Cc: stable <stable@vger.kernel.org>
+Cc: Kees Cook <keescook@chromium.org>
+Cc: Daniel Micay <danielmicay@gmail.com>
+Cc: Nick Desaulniers <ndesaulniers@google.com>
+Cc: Christoph Lameter <cl@linux.com>
+Cc: Pekka Enberg <penberg@kernel.org>
+Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
+Cc: Andrew Morton <akpm@linux-foundation.org>
+Cc: Vlastimil Babka <vbabka@suse.cz>
+Cc: Nathan Chancellor <nathan@kernel.org>
+Cc: linux-mm@kvack.org
+Cc: linux-kernel@vger.kernel.org
+Cc: llvm@lists.linux.dev
+Acked-by: Nick Desaulniers <ndesaulniers@google.com>
+Acked-by: David Rientjes <rientjes@google.com>
+Acked-by: Kees Cook <keescook@chromium.org>
+Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
+Link: https://lore.kernel.org/r/20220218131358.3032912-1-gregkh@linuxfoundation.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/linux/slab.h |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/include/linux/slab.h
++++ b/include/linux/slab.h
+@@ -669,8 +669,7 @@ static inline __alloc_size(1, 2) void *k
+  * allocator where we care about the real place the memory allocation
+  * request comes from.
+  */
+-extern void *__kmalloc_track_caller(size_t size, gfp_t flags, unsigned long caller)
+-                                 __alloc_size(1);
++extern void *__kmalloc_track_caller(size_t size, gfp_t flags, unsigned long caller);
+ #define kmalloc_track_caller(size, flags) \
+       __kmalloc_track_caller(size, flags, _RET_IP_)