projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7aed6a2
)
kasan: Fix Software Tag-Based KASAN with GCC
author
Marco Elver
<elver@google.com>
Mon, 21 Oct 2024 12:00:10 +0000
(14:00 +0200)
committer
Will Deacon
<will@kernel.org>
Wed, 23 Oct 2024 15:04:30 +0000
(16:04 +0100)
Per [1], -fsanitize=kernel-hwaddress with GCC currently does not disable
instrumentation in functions with __attribute__((no_sanitize_address)).
However, __attribute__((no_sanitize("hwaddress"))) does correctly
disable instrumentation. Use it instead.
Link:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117196
Link:
https://lore.kernel.org/r/000000000000f362e80620e27859@google.com
Link:
https://lore.kernel.org/r/ZvFGwKfoC4yVjN_X@J2N7QTR9R3
Link:
https://bugzilla.kernel.org/show_bug.cgi?id=218854
Reported-by: syzbot+908886656a02769af987@syzkaller.appspotmail.com
Tested-by: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Andrew Pinski <pinskia@gmail.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Marco Elver <elver@google.com>
Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
Fixes:
7b861a53e46b
("kasan: Bump required compiler version")
Link:
https://lore.kernel.org/r/20241021120013.3209481-1-elver@google.com
Signed-off-by: Will Deacon <will@kernel.org>
include/linux/compiler-gcc.h
patch
|
blob
|
blame
|
history
diff --git
a/include/linux/compiler-gcc.h
b/include/linux/compiler-gcc.h
index f805adaa316e9a21a4c78ffcb5ffb07acb19055b..cd6f9aae311fca0f6d13a6534bdcbf24564d3fa3 100644
(file)
--- a/
include/linux/compiler-gcc.h
+++ b/
include/linux/compiler-gcc.h
@@
-80,7
+80,11
@@
#define __noscs __attribute__((__no_sanitize__("shadow-call-stack")))
#endif
+#ifdef __SANITIZE_HWADDRESS__
+#define __no_sanitize_address __attribute__((__no_sanitize__("hwaddress")))
+#else
#define __no_sanitize_address __attribute__((__no_sanitize_address__))
+#endif
#if defined(__SANITIZE_THREAD__)
#define __no_sanitize_thread __attribute__((__no_sanitize_thread__))