[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210203120401.134132370@infradead.org>
Date: Wed, 03 Feb 2021 13:02:24 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Josh Poimboeuf <jpoimboe@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>
Cc: Miroslav Benes <mbenes@...e.cz>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Julien Thierry <jthierry@...hat.com>,
Kees Cook <keescook@...omium.org>, x86@...nel.org,
linux-kernel@...r.kernel.org, peterz@...radead.org
Subject: [PATCH 2/5] objtool: More consistent use of arch_callee_saved_reg()
Since save_regs() will only ever set a reg when it is
arch_callee_saved_reg() all the other regs will always be unused and
are effectively scratch space.
No point in comparing them.
Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
---
tools/objtool/check.c | 6 ++++++
1 file changed, 6 insertions(+)
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1725,6 +1725,9 @@ static bool has_modified_stack_frame(str
return false;
for (i = 0; i < CFI_NUM_REGS; i++) {
+ if (!arch_callee_saved_reg(i))
+ continue;
+
if (cfi->regs[i].base != initial_func_cfi.regs[i].base ||
cfi->regs[i].offset != initial_func_cfi.regs[i].offset)
return true;
@@ -2248,6 +2251,9 @@ static bool insn_cfi_match(struct instru
} else if (memcmp(&cfi1->regs, &cfi2->regs, sizeof(cfi1->regs))) {
for (i = 0; i < CFI_NUM_REGS; i++) {
+ if (!arch_callee_saved_reg(i))
+ continue;
+
if (!memcmp(&cfi1->regs[i], &cfi2->regs[i],
sizeof(struct cfi_reg)))
continue;
Powered by blists - more mailing lists