提交 66ad4efa 编写于 作者: D Denys Vlasenko 提交者: Ingo Molnar

x86/asm/entry/64: Simplify jumps in ret_from_fork

Replace
        test
        jz  1f
        jmp label
    1:

with
        test
        jnz label

Run-tested.
Signed-off-by: NDenys Vlasenko <dvlasenk@redhat.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Drewry <wad@chromium.org>
Link: http://lkml.kernel.org/r/1428439424-7258-6-git-send-email-dvlasenk@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
上级 a30b0085
...@@ -608,18 +608,18 @@ ENTRY(ret_from_fork) ...@@ -608,18 +608,18 @@ ENTRY(ret_from_fork)
RESTORE_EXTRA_REGS RESTORE_EXTRA_REGS
testl $3,CS(%rsp) # from kernel_thread? testl $3,CS(%rsp) # from kernel_thread?
jz 1f
/* /*
* By the time we get here, we have no idea whether our pt_regs, * By the time we get here, we have no idea whether our pt_regs,
* ti flags, and ti status came from the 64-bit SYSCALL fast path, * ti flags, and ti status came from the 64-bit SYSCALL fast path,
* the slow path, or one of the ia32entry paths. * the slow path, or one of the ia32entry paths.
* Use int_ret_from_sys_call to return, since it can safely handle * Use IRET code path to return, since it can safely handle
* all of the above. * all of the above.
*/ */
jmp int_ret_from_sys_call jnz int_ret_from_sys_call
1: /* We came from kernel_thread */
/* nb: we depend on RESTORE_EXTRA_REGS above */
movq %rbp, %rdi movq %rbp, %rdi
call *%rbx call *%rbx
movl $0, RAX(%rsp) movl $0, RAX(%rsp)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册