x86/ibt,ftrace: Make function-graph play nice
authorPeter Zijlstra <peterz@infradead.org>
Tue, 8 Mar 2022 15:30:31 +0000 (16:30 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 15 Mar 2022 09:32:37 +0000 (10:32 +0100)
commite52fc2cf3f662828cc0d51c4b73bed73ad275fce
tree66c13647656492fd38701ff5bf2adff25e6e4b20
parentd15cb3dab1e4f00e29599a4f5e1f6678a530d270
x86/ibt,ftrace: Make function-graph play nice

Return trampoline must not use indirect branch to return; while this
preserves the RSB, it is fundamentally incompatible with IBT. Instead
use a retpoline like ROP gadget that defeats IBT while not unbalancing
the RSB.

And since ftrace_stub is no longer a plain RET, don't use it to copy
from. Since RET is a trivial instruction, poke it directly.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20220308154318.347296408@infradead.org
arch/x86/kernel/ftrace.c
arch/x86/kernel/ftrace_64.S