Commit 36256009 authored by Daniel Borkmann's avatar Daniel Borkmann Committed by Alexei Starovoitov

bpf, x64: clean up retpoline emission slightly

Make the RETPOLINE_{RA,ED}X_BPF_JIT() a bit more readable by
cleaning up the macro, aligning comments and spacing.
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Acked-by: default avatarYonghong Song <yhs@fb.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 631b1e3b
...@@ -301,9 +301,9 @@ do { \ ...@@ -301,9 +301,9 @@ do { \
* jmp *%edx for x86_32 * jmp *%edx for x86_32
*/ */
#ifdef CONFIG_RETPOLINE #ifdef CONFIG_RETPOLINE
#ifdef CONFIG_X86_64 # ifdef CONFIG_X86_64
# define RETPOLINE_RAX_BPF_JIT_SIZE 17 # define RETPOLINE_RAX_BPF_JIT_SIZE 17
# define RETPOLINE_RAX_BPF_JIT() \ # define RETPOLINE_RAX_BPF_JIT() \
do { \ do { \
EMIT1_off32(0xE8, 7); /* callq do_rop */ \ EMIT1_off32(0xE8, 7); /* callq do_rop */ \
/* spec_trap: */ \ /* spec_trap: */ \
...@@ -314,8 +314,8 @@ do { \ ...@@ -314,8 +314,8 @@ do { \
EMIT4(0x48, 0x89, 0x04, 0x24); /* mov %rax,(%rsp) */ \ EMIT4(0x48, 0x89, 0x04, 0x24); /* mov %rax,(%rsp) */ \
EMIT1(0xC3); /* retq */ \ EMIT1(0xC3); /* retq */ \
} while (0) } while (0)
#else # else /* !CONFIG_X86_64 */
# define RETPOLINE_EDX_BPF_JIT() \ # define RETPOLINE_EDX_BPF_JIT() \
do { \ do { \
EMIT1_off32(0xE8, 7); /* call do_rop */ \ EMIT1_off32(0xE8, 7); /* call do_rop */ \
/* spec_trap: */ \ /* spec_trap: */ \
...@@ -326,17 +326,16 @@ do { \ ...@@ -326,17 +326,16 @@ do { \
EMIT3(0x89, 0x14, 0x24); /* mov %edx,(%esp) */ \ EMIT3(0x89, 0x14, 0x24); /* mov %edx,(%esp) */ \
EMIT1(0xC3); /* ret */ \ EMIT1(0xC3); /* ret */ \
} while (0) } while (0)
#endif # endif
#else /* !CONFIG_RETPOLINE */ #else /* !CONFIG_RETPOLINE */
# ifdef CONFIG_X86_64
#ifdef CONFIG_X86_64 # define RETPOLINE_RAX_BPF_JIT_SIZE 2
# define RETPOLINE_RAX_BPF_JIT_SIZE 2 # define RETPOLINE_RAX_BPF_JIT() \
# define RETPOLINE_RAX_BPF_JIT() \ EMIT2(0xFF, 0xE0); /* jmp *%rax */
EMIT2(0xFF, 0xE0); /* jmp *%rax */ # else /* !CONFIG_X86_64 */
#else # define RETPOLINE_EDX_BPF_JIT() \
# define RETPOLINE_EDX_BPF_JIT() \ EMIT2(0xFF, 0xE2) /* jmp *%edx */
EMIT2(0xFF, 0xE2) /* jmp *%edx */ # endif
#endif
#endif #endif
#endif /* _ASM_X86_NOSPEC_BRANCH_H_ */ #endif /* _ASM_X86_NOSPEC_BRANCH_H_ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment