Patch "objtool: Fix stack offset tracking for indirect CFAs" has been added to the 5.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    objtool: Fix stack offset tracking for indirect CFAs

to the 5.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     objtool-fix-stack-offset-tracking-for-indirect-cfas.patch
and it can be found in the queue-5.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.


>From d8dd25a461e4eec7190cb9d66616aceacc5110ad Mon Sep 17 00:00:00 2001
From: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
Date: Sat, 25 Apr 2020 05:03:00 -0500
Subject: objtool: Fix stack offset tracking for indirect CFAs

From: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>

commit d8dd25a461e4eec7190cb9d66616aceacc5110ad upstream.

When the current frame address (CFA) is stored on the stack (i.e.,
cfa->base == CFI_SP_INDIRECT), objtool neglects to adjust the stack
offset when there are subsequent pushes or pops.  This results in bad
ORC data at the end of the ENTER_IRQ_STACK macro, when it puts the
previous stack pointer on the stack and does a subsequent push.

This fixes the following unwinder warning:

  WARNING: can't dereference registers at 00000000f0a6bdba for ip interrupt_entry+0x9f/0xa0

Fixes: 627fce14809b ("objtool: Add ORC unwind table generation")
Reported-by: Vince Weaver <vincent.weaver@xxxxxxxxx>
Reported-by: Dave Jones <dsj@xxxxxx>
Reported-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
Reported-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx>
Reported-by: Joe Mario <jmario@xxxxxxxxxx>
Reviewed-by: Miroslav Benes <mbenes@xxxxxxx>
Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Jann Horn <jannh@xxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/853d5d691b29e250333332f09b8e27410b2d9924.1587808742.git.jpoimboe@xxxxxxxxxx
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
 tools/objtool/check.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -1403,7 +1403,7 @@ static int update_insn_state_regs(struct
 	struct cfi_reg *cfa = &state->cfa;
 	struct stack_op *op = &insn->stack_op;
 
-	if (cfa->base != CFI_SP)
+	if (cfa->base != CFI_SP && cfa->base != CFI_SP_INDIRECT)
 		return 0;
 
 	/* push */


Patches currently in stable-queue which might be from jpoimboe@xxxxxxxxxx are

queue-5.6/x86-entry-64-fix-unwind-hints-in-kernel-exit-path.patch
queue-5.6/x86-unwind-orc-don-t-skip-the-first-frame-for-inactive-tasks.patch
queue-5.6/x86-unwind-orc-prevent-unwinding-before-orc-initialization.patch
queue-5.6/x86-entry-64-fix-unwind-hints-in-__switch_to_asm.patch
queue-5.6/x86-unwind-orc-fix-error-path-for-bad-orc-entry-type.patch
queue-5.6/x86-entry-64-fix-unwind-hints-in-rewind_stack_do_exit.patch
queue-5.6/x86-unwind-orc-fix-premature-unwind-stoppage-due-to-iret-frames.patch
queue-5.6/x86-entry-64-fix-unwind-hints-in-register-clearing-code.patch
queue-5.6/objtool-fix-stack-offset-tracking-for-indirect-cfas.patch
queue-5.6/kvm-vmx-explicitly-clear-rflags.cf-and-rflags.zf-in-vm-exit-rsb-path.patch



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux