2023-04-12 17:39:40

by Josh Poimboeuf

[permalink] [raw]
Subject: [PATCH] objtool: Add stackleak instrumentation to uaccess safe list

If a function has a large stack frame, the stackleak plugin adds a call
to stackleak_track_stack() after the prologue.

This function may be called in uaccess-enabled code. Add it to the
uaccess safe list.

Fixes the following warning:

vmlinux.o: warning: objtool: kasan_report+0x12: call to stackleak_track_stack() with UACCESS enabled

Signed-off-by: Josh Poimboeuf <[email protected]>
---
tools/objtool/check.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index f937be1afe65..34bd6a11bddd 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1278,6 +1278,8 @@ static const char *uaccess_safe_builtin[] = {
"__ubsan_handle_type_mismatch_v1",
"__ubsan_handle_shift_out_of_bounds",
"__ubsan_handle_load_invalid_value",
+ /* STACKLEAK */
+ "stackleak_track_stack",
/* misc */
"csum_partial_copy_generic",
"copy_mc_fragile",
--
2.39.2


Subject: [tip: objtool/core] objtool: Add stackleak instrumentation to uaccess safe list

The following commit has been merged into the objtool/core branch of tip:

Commit-ID: 7f530fba1123edcad00d59e1a73019814935f0c1
Gitweb: https://git.kernel.org/tip/7f530fba1123edcad00d59e1a73019814935f0c1
Author: Josh Poimboeuf <[email protected]>
AuthorDate: Wed, 12 Apr 2023 10:29:35 -07:00
Committer: Peter Zijlstra <[email protected]>
CommitterDate: Fri, 14 Apr 2023 16:08:27 +02:00

objtool: Add stackleak instrumentation to uaccess safe list

If a function has a large stack frame, the stackleak plugin adds a call
to stackleak_track_stack() after the prologue.

This function may be called in uaccess-enabled code. Add it to the
uaccess safe list.

Fixes the following warning:

vmlinux.o: warning: objtool: kasan_report+0x12: call to stackleak_track_stack() with UACCESS enabled

Signed-off-by: Josh Poimboeuf <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Link: https://lkml.kernel.org/r/42e9b487ef89e9b237fd5220ad1c7cf1a2ad7eb8.1681320562.git.jpoimboe@kernel.org
---
tools/objtool/check.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index 9440b07..4c8ef81 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1279,6 +1279,8 @@ static const char *uaccess_safe_builtin[] = {
"__ubsan_handle_type_mismatch_v1",
"__ubsan_handle_shift_out_of_bounds",
"__ubsan_handle_load_invalid_value",
+ /* STACKLEAK */
+ "stackleak_track_stack",
/* misc */
"csum_partial_copy_generic",
"copy_mc_fragile",