x86/kvm/emulate: Avoid RET for fastops
Since there is only a single fastop() function, convert the FASTOP
stuff from CALL_NOSPEC+RET to JMP_NOSPEC+JMP, avoiding the return
thunks and all that jazz.
Specifically FASTOPs rely on the return thunk to preserve EFLAGS,
which not all of them can trivially do (call depth tracing suffers
here).
Objtool strenuously complains about this:
- indirect call without a .rodata, fails to determine JUMP_TABLE,
annotate
- fastop functions fall through, exception
- unreachable instruction after fastop_return, save/restore
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
4 files changed