From: "tip-bot2 for Josh Poimboeuf" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: kernel test robot <lkp@intel.com>,
Tiezhu Yang <yangtiezhu@loongson.cn>,
Josh Poimboeuf <jpoimboe@kernel.org>,
Ingo Molnar <mingo@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: objtool/urgent] objtool/loongarch: Add unwind hints in prepare_frametrace()
Date: Tue, 01 Apr 2025 08:17:03 -0000 [thread overview]
Message-ID: <174349542583.14745.6124193536449922861.tip-bot2@tip-bot2> (raw)
In-Reply-To: <270cadd8040dda74db2307f23497bb68e65db98d.1743481539.git.jpoimboe@kernel.org>
The following commit has been merged into the objtool/urgent branch of tip:
Commit-ID: 7c977393b8277ed319e92e4b598b26598c9d30c0
Gitweb: https://git.kernel.org/tip/7c977393b8277ed319e92e4b598b26598c9d30c0
Author: Josh Poimboeuf <jpoimboe@kernel.org>
AuthorDate: Mon, 31 Mar 2025 21:26:43 -07:00
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Tue, 01 Apr 2025 10:10:10 +02:00
objtool/loongarch: Add unwind hints in prepare_frametrace()
If 'regs' points to a local stack variable, prepare_frametrace() stores
all registers to the stack. This confuses objtool as it expects them to
be restored from the stack later.
The stores don't affect stack tracing, so use unwind hints to hide them
from objtool.
Fixes the following warnings:
arch/loongarch/kernel/traps.o: warning: objtool: show_stack+0xe0: stack state mismatch: reg1[22]=-1+0 reg2[22]=-2-160
arch/loongarch/kernel/traps.o: warning: objtool: show_stack+0xe0: stack state mismatch: reg1[23]=-1+0 reg2[23]=-2-152
Fixes: cb8a2ef0848c ("LoongArch: Add ORC stack unwinder support")
Reported-by: kernel test robot <lkp@intel.com>
Tested-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/270cadd8040dda74db2307f23497bb68e65db98d.1743481539.git.jpoimboe@kernel.org
Closes: https://lore.kernel.org/oe-kbuild-all/202503280703.OARM8SrY-lkp@intel.com/
---
arch/loongarch/include/asm/stacktrace.h | 3 +++
arch/loongarch/include/asm/unwind_hints.h | 10 +++++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/arch/loongarch/include/asm/stacktrace.h b/arch/loongarch/include/asm/stacktrace.h
index f23adb1..fc8b647 100644
--- a/arch/loongarch/include/asm/stacktrace.h
+++ b/arch/loongarch/include/asm/stacktrace.h
@@ -8,6 +8,7 @@
#include <asm/asm.h>
#include <asm/ptrace.h>
#include <asm/loongarch.h>
+#include <asm/unwind_hints.h>
#include <linux/stringify.h>
enum stack_type {
@@ -43,6 +44,7 @@ int get_stack_info(unsigned long stack, struct task_struct *task, struct stack_i
static __always_inline void prepare_frametrace(struct pt_regs *regs)
{
__asm__ __volatile__(
+ UNWIND_HINT_SAVE
/* Save $ra */
STORE_ONE_REG(1)
/* Use $ra to save PC */
@@ -80,6 +82,7 @@ static __always_inline void prepare_frametrace(struct pt_regs *regs)
STORE_ONE_REG(29)
STORE_ONE_REG(30)
STORE_ONE_REG(31)
+ UNWIND_HINT_RESTORE
: "=m" (regs->csr_era)
: "r" (regs->regs)
: "memory");
diff --git a/arch/loongarch/include/asm/unwind_hints.h b/arch/loongarch/include/asm/unwind_hints.h
index a01086a..2c68bc7 100644
--- a/arch/loongarch/include/asm/unwind_hints.h
+++ b/arch/loongarch/include/asm/unwind_hints.h
@@ -23,6 +23,14 @@
UNWIND_HINT sp_reg=ORC_REG_SP type=UNWIND_HINT_TYPE_CALL
.endm
-#endif /* __ASSEMBLY__ */
+#else /* !__ASSEMBLY__ */
+
+#define UNWIND_HINT_SAVE \
+ UNWIND_HINT(UNWIND_HINT_TYPE_SAVE, 0, 0, 0)
+
+#define UNWIND_HINT_RESTORE \
+ UNWIND_HINT(UNWIND_HINT_TYPE_RESTORE, 0, 0, 0)
+
+#endif /* !__ASSEMBLY__ */
#endif /* _ASM_LOONGARCH_UNWIND_HINTS_H */
next prev parent reply other threads:[~2025-04-01 8:17 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-01 4:26 [PATCH 00/11] Yet more objtool fixes Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 01/11] objtool: Silence more KCOV warnings, part 2 Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 02/11] objtool: Ignore end-of-section jumps for KCOV/GCOV Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 03/11] objtool: Append "()" to function name in "unexpected end of section" warning Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 04/11] Revert "objtool: Increase per-function WARN_FUNC() rate limit" Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 05/11] objtool: Always fail on fatal errors Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 06/11] objtool: Change "warning:" to "error:" for " Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] objtool: Change "warning:" to "error: " " tip-bot2 for Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 07/11] objtool: Fix verbose disassembly if CROSS_COMPILE isn't set Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] " tip-bot2 for David Laight
2025-04-01 4:26 ` [PATCH 08/11] objtool/loongarch: Add unwind hints in prepare_frametrace() Josh Poimboeuf
2025-04-01 7:08 ` Ingo Molnar
2025-04-01 7:45 ` Tiezhu Yang
2025-04-01 8:10 ` Ingo Molnar
2025-04-01 8:29 ` Tiezhu Yang
2025-04-01 8:17 ` tip-bot2 for Josh Poimboeuf [this message]
2025-04-01 4:26 ` [PATCH 09/11] sched/smt: Always inline sched_smt_active() Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 10/11] context_tracking: Always inline ct_{nmi,irq}_{enter,exit}() Josh Poimboeuf
2025-04-01 7:15 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-04-01 7:26 ` tip-bot2 for Josh Poimboeuf
2025-04-01 4:26 ` [PATCH 11/11] rcu-tasks: Always inline rcu_irq_work_resched() Josh Poimboeuf
2025-04-01 7:14 ` [tip: objtool/urgent] " tip-bot2 for Josh Poimboeuf
2025-04-01 7:26 ` 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=174349542583.14745.6124193536449922861.tip-bot2@tip-bot2 \
--to=tip-bot2@linutronix.de \
--cc=jpoimboe@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=lkp@intel.com \
--cc=mingo@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
--cc=yangtiezhu@loongson.cn \
/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®