From: Josh Poimboeuf <jpoimboe@kernel.org>
To: x86@kernel.org
Cc: linux-kernel@vger.kernel.org,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>, Miroslav Benes <mbenes@suse.cz>,
Brendan Jackman <jackmanb@google.com>,
Nathan Chancellor <nathan@kernel.org>
Subject: [PATCH 17/22] panic: Disable SMAP in __stack_chk_fail()
Date: Mon, 24 Mar 2025 14:56:07 -0700 [thread overview]
Message-ID: <a3e97e0119e1b04c725a8aa05f7bc83d98e657eb.1742852847.git.jpoimboe@kernel.org> (raw)
In-Reply-To: <cover.1742852846.git.jpoimboe@kernel.org>
__stack_chk_fail() can be called from uaccess-enabled code. Make sure
uaccess gets disabled before calling panic().
Fixes the following warning:
kernel/trace/trace_branch.o: error: objtool: ftrace_likely_update+0x1ea: call to __stack_chk_fail() with UACCESS enabled
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
kernel/panic.c | 6 ++++++
tools/objtool/check.c | 5 ++++-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/kernel/panic.c b/kernel/panic.c
index d8635d5cecb2..f9f0c5148f6a 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -832,9 +832,15 @@ device_initcall(register_warn_debugfs);
*/
__visible noinstr void __stack_chk_fail(void)
{
+ unsigned long flags;
+
instrumentation_begin();
+ flags = user_access_save();
+
panic("stack-protector: Kernel stack is corrupted in: %pB",
__builtin_return_address(0));
+
+ user_access_restore(flags);
instrumentation_end();
}
EXPORT_SYMBOL(__stack_chk_fail);
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index f4b9fcc395eb..a953ce5fe395 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1194,12 +1194,15 @@ static const char *uaccess_safe_builtin[] = {
"__ubsan_handle_load_invalid_value",
/* STACKLEAK */
"stackleak_track_stack",
+ /* TRACE_BRANCH_PROFILING */
+ "ftrace_likely_update",
+ /* STACKPROTECTOR */
+ "__stack_chk_fail",
/* misc */
"csum_partial_copy_generic",
"copy_mc_fragile",
"copy_mc_fragile_handle_tail",
"copy_mc_enhanced_fast_string",
- "ftrace_likely_update", /* CONFIG_TRACE_BRANCH_PROFILING */
"rep_stos_alternative",
"rep_movs_alternative",
"__copy_user_nocache",
--
2.48.1
next prev parent reply other threads:[~2025-03-24 21:56 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-24 21:55 [PATCH 00/22] objtool: CONFIG_OBJTOOL_WERROR fixes and cleanups Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 01/22] objtool: Fix detection of consecutive jump tables Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] objtool: Fix detection of consecutive jump tables on Clang 20 tip-bot2 for Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 02/22] objtool: Warn when disabling unreachable warnings Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 03/22] objtool: Ignore entire functions rather than instructions Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 04/22] objtool: Fix X86_FEATURE_SMAP alternative handling Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 05/22] objtool: Fix CONFIG_OBJTOOL_WERROR for vmlinux.o Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 06/22] objtool: Fix init_module() handling Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 07/22] objtool: Silence more KCOV warnings Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 08/22] objtool: Properly disable uaccess validation Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:55 ` [PATCH 09/22] objtool: Improve error handling Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 10/22] objtool: Reduce CONFIG_OBJTOOL_WERROR verbosity Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 11/22] objtool: Fix up some outdated references to ENTRY/ENDPROC Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 12/22] objtool: Remove --no-unreachable for noinstr-only vmlinux.o runs Josh Poimboeuf
2025-03-25 8:35 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 13/22] objtool: Remove redundant opts.noinstr dependency Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 14/22] spi: amd: Fix out-of-bounds stack access in amd_set_spi_freq() Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, " tip-bot2 for Josh Poimboeuf
2025-03-25 13:13 ` Mark Brown
2025-03-25 22:10 ` tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 15/22] nvmet: Fix out-of-bounds stack access in nvmet_ctrl_state_show() Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, " tip-bot2 for Josh Poimboeuf
2025-03-25 22:09 ` tip-bot2 for Josh Poimboeuf
2025-03-25 22:20 ` Chaitanya Kulkarni
2025-03-24 21:56 ` [PATCH 16/22] media: dib8000: Prevent divide-by-zero in dib8000_set_dds() Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, " tip-bot2 for Josh Poimboeuf
2025-03-25 22:09 ` tip-bot2 for Josh Poimboeuf
2025-03-25 22:42 ` Mauro Carvalho Chehab
2025-03-26 1:46 ` Josh Poimboeuf
2025-03-24 21:56 ` Josh Poimboeuf [this message]
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, panic: Disable SMAP in __stack_chk_fail() tip-bot2 for Josh Poimboeuf
2025-03-25 22:09 ` tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 18/22] Input: cyapa - remove undefined behavior in cyapa_update_fw_store() Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, Input: cyapa - Remove " tip-bot2 for Josh Poimboeuf
2025-03-25 22:09 ` tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 19/22] ASoC: codecs: wcd934x: Remove undefined behavior in wcd934x_slim_irq_handler() Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, ASoC: codecs: wcd934x: Remove potential " tip-bot2 for Josh Poimboeuf
2025-03-25 11:32 ` Mark Brown
2025-03-25 11:36 ` Ingo Molnar
2025-03-25 13:12 ` Mark Brown
2025-03-25 22:09 ` tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 20/22] regulator: rk808: Remove undefined behavior in rk806_set_mode_dcdc() Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, regulator: rk808: Remove potential " tip-bot2 for Josh Poimboeuf
2025-03-25 13:17 ` Mark Brown
2025-03-25 22:09 ` tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 21/22] pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config() Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, pwm: mediatek: Prevent theoretical " tip-bot2 for Josh Poimboeuf
2025-03-26 10:35 ` Uwe Kleine-König
2025-03-26 11:11 ` Peter Zijlstra
2025-03-27 5:44 ` Josh Poimboeuf
2025-03-27 8:27 ` Uwe Kleine-König
[not found] ` <m7pgkp3ueo7iqgqf74upjrihr3mpmb3sqhwegnjxxwsrgx2jsw@dnec5iqiyobh>
[not found] ` <Z-Uv60sD_S2xYVB1@gmail.com>
2025-03-27 18:14 ` Uwe Kleine-König
2025-03-27 21:21 ` Ingo Molnar
2025-03-28 10:24 ` Uwe Kleine-König
2025-03-28 13:45 ` Ingo Molnar
2025-03-28 18:19 ` Uwe Kleine-König
2025-03-25 22:09 ` tip-bot2 for Josh Poimboeuf
2025-03-27 11:06 ` tip-bot2 for Josh Poimboeuf
2025-03-24 21:56 ` [PATCH 22/22] lkdtm: Obfuscate do_nothing() pointer Josh Poimboeuf
2025-03-25 8:34 ` [tip: objtool/urgent] objtool, lkdtm: Obfuscate the " tip-bot2 for Josh Poimboeuf
2025-03-25 19:39 ` [PATCH 22/22] lkdtm: Obfuscate " Kees Cook
2025-03-25 22:09 ` [tip: objtool/urgent] objtool, lkdtm: Obfuscate the " tip-bot2 for Josh Poimboeuf
2025-03-27 11:06 ` tip-bot2 for Josh Poimboeuf
2025-03-28 13:48 ` tip-bot2 for Josh Poimboeuf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a3e97e0119e1b04c725a8aa05f7bc83d98e657eb.1742852847.git.jpoimboe@kernel.org \
--to=jpoimboe@kernel.org \
--cc=jackmanb@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbenes@suse.cz \
--cc=mingo@kernel.org \
--cc=nathan@kernel.org \
--cc=peterz@infradead.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®