From 53d2fe589e62c9a7d3b679c1b9cc493a2d7e7d0b Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 25 Feb 2022 11:58:07 +0100 Subject: [PATCH] 5.16-stable patches added patches: slab-remove-__alloc_size-attribute-from-__kmalloc_track_caller.patch --- queue-5.16/series | 1 + ...ttribute-from-__kmalloc_track_caller.patch | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 queue-5.16/slab-remove-__alloc_size-attribute-from-__kmalloc_track_caller.patch diff --git a/queue-5.16/series b/queue-5.16/series index 6e9c8f0413c..6c4bd499965 100644 --- a/queue-5.16/series +++ b/queue-5.16/series @@ -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 index 00000000000..d4fa8b6953f --- /dev/null +++ b/queue-5.16/slab-remove-__alloc_size-attribute-from-__kmalloc_track_caller.patch @@ -0,0 +1,57 @@ +From 93dd04ab0b2b32ae6e70284afc764c577156658e Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Fri, 18 Feb 2022 14:13:58 +0100 +Subject: slab: remove __alloc_size attribute from __kmalloc_track_caller + +From: Greg Kroah-Hartman + +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 +Cc: Kees Cook +Cc: Daniel Micay +Cc: Nick Desaulniers +Cc: Christoph Lameter +Cc: Pekka Enberg +Cc: Joonsoo Kim +Cc: Andrew Morton +Cc: Vlastimil Babka +Cc: Nathan Chancellor +Cc: linux-mm@kvack.org +Cc: linux-kernel@vger.kernel.org +Cc: llvm@lists.linux.dev +Acked-by: Nick Desaulniers +Acked-by: David Rientjes +Acked-by: Kees Cook +Signed-off-by: Vlastimil Babka +Link: https://lore.kernel.org/r/20220218131358.3032912-1-gregkh@linuxfoundation.org +Signed-off-by: Greg Kroah-Hartman +--- + 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_) + -- 2.47.3