[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210209091600.075402197@infradead.org>
Date: Tue, 09 Feb 2021 10:16:00 +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 v2 0/3] objtool: Support the stack swizzle
Hi!
Implement objtool support for the x86_64 stack swizzle pattern.
This means we can use the minial stack swizzle:
mov %rsp, (%[tos])
mov %[tos], %rsp
...
pop %rsp
from inline asm, with arbitrary stack setup. The ORC data for the Top-of-Stack
will use the SP_INDIRECT CFA base. In order for this to work, SP_INDIRECT needs
to first dereference and then add the offset to find the next frame.
Therefore we need to change SP_INDIRECT (which is currently unused) to mean:
(%rsp) + offset.
Changes since v1 include:
- removed the !callee saved reg restriction by using the vals[] array
over the regs[] array.
- per the above, removed the patches creating the regs[] scratch space.
- more comments.
- rebased to tip/objtool/core
Powered by blists - more mailing lists