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: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Yonghong Song <yhs@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
631b1e3b83
commit
36256009b2
@ -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 { \
|
|||||||
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 { \
|
|||||||
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_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user