summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/filesystems/kernfs_test.c
diff options
context:
space:
mode:
authorKees Cook <kees@kernel.org>2025-07-30 02:41:00 +0300
committerKees Cook <kees@kernel.org>2025-07-30 03:19:35 +0300
commitf627b51aaa041cba715b59026cf2d9cb1476c7ed (patch)
tree7a3e2be2e44dde88a731b7b536a51728b5f3654c /tools/testing/selftests/filesystems/kernfs_test.c
parent94fd44648dae2a5b6149a41faa0b07928c3e1963 (diff)
downloadlinux-f627b51aaa041cba715b59026cf2d9cb1476c7ed.tar.xz
compiler_types: Provide __no_kstack_erase to disable coverage only on Clang
In order to support Clang's stack depth tracking (for Linux's kstack_erase feature), the coverage sanitizer needed to be disabled for __init (and __head) section code. Doing this universally (i.e. for GCC too) created a number of unexpected problems, ranging from changes to inlining logic to failures to DCE code on earlier GCC versions. Since this change is only needed for Clang, specialize it so that GCC doesn't see the change as it isn't needed there (the GCC implementation of kstack_erase uses a GCC plugin that removes stack depth tracking instrumentation from __init sections during a late pass in the IR). Successfully build and boot tested with GCC 12 and Clang 22. Fixes: 381a38ea53d2 ("init.h: Disable sanitizer coverage for __init and __head") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202507270258.neWuiXLd-lkp@intel.com/ Reported-by: syzbot+5245cb609175fb6e8122@syzkaller.appspotmail.com Closes: https://lore.kernel.org/all/6888d004.a00a0220.26d0e1.0004.GAE@google.com/ Reviewed-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Marco Elver <elver@google.com> Link: https://lore.kernel.org/r/20250729234055.it.233-kees@kernel.org Signed-off-by: Kees Cook <kees@kernel.org>
Diffstat (limited to 'tools/testing/selftests/filesystems/kernfs_test.c')
0 files changed, 0 insertions, 0 deletions