On Sun, Jan 26, 2014 at 02:28:15PM -0800, Linus Torvalds wrote:
> diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
> index 1e96c3628bf2..15b5953da958 100644
> --- a/arch/x86/kernel/entry_64.S
> +++ b/arch/x86/kernel/entry_64.S
> @@ -658,30 +658,24 @@ sysret_check:
>       /* Handle reschedules */
>       /* edx: work, edi: workmask */
>  sysret_careful:
>       TRACE_IRQS_ON
>       ENABLE_INTERRUPTS(CLBR_NONE)
> +     SAVE_REST
> +     FIXUP_TOP_OF_STACK %r11
> +     movq %rsp,%rdi
> +     movl %edx,%esi
> +     call syscall_exit_slowpath
> +     movl $_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT,%edi
> +     testl %eax,%eax
> +     jne sysret_using_iret
> +     addq $REST_SKIP,%rsp
> +     jmp sysret_check;

Obviously I don't particularly like the SAVE_REST/FIXUP_TOP_OF_STACK
being added to the reschedule path.

Can't we do as Al suggested earlier and have 2 slowpath calls, one
without PT_REGS and one with?

That said, yes its a nice cleanup, entry.S always hurts my brain.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to