Messages in this thread Patch in this message | | | Date | Mon, 01 Jun 2015 13:03:59 +0100 | From | "Jan Beulich" <> | Subject | [PATCH] x86-64/entry: fold identical code paths |
| |
retint_kernel doesn't require %rcx to be pointing to thread info (anymore?), and the code on the two alternative paths is - not really surprisingly - identical.
Signed-off-by: Jan Beulich <jbeulich@suse.com> Cc: Andy Lutomirski <luto@kernel.org> --- arch/x86/kernel/entry_64.S | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)
--- 4.1-rc6/arch/x86/kernel/entry_64.S +++ 4.1-rc6-x86_64-entry-fold-code/arch/x86/kernel/entry_64.S @@ -744,7 +744,7 @@ ret_from_intr: testl $3,CS(%rsp) je retint_kernel /* Interrupt came from user space */ - +retint_user: GET_THREAD_INFO(%rcx) /* * %rcx: thread info. Interrupts off. @@ -1380,15 +1380,9 @@ ENTRY(error_exit) RESTORE_EXTRA_REGS DISABLE_INTERRUPTS(CLBR_NONE) TRACE_IRQS_OFF - GET_THREAD_INFO(%rcx) testl %eax,%eax jne retint_kernel - LOCKDEP_SYS_EXIT_IRQ - movl TI_flags(%rcx),%edx - movl $_TIF_WORK_MASK,%edi - andl %edi,%edx - jnz retint_careful - jmp retint_swapgs + jmp retint_user CFI_ENDPROC END(error_exit)
| |