• Denys Vlasenko's avatar
    x86/asm/entry/64: Change the THREAD_INFO() definition to not depend on KERNEL_STACK_OFFSET · b3fe8ba3
    Denys Vlasenko authored
    This changes the THREAD_INFO() definition and all its callsites
    so that they do not count stack position from
    (top of stack - KERNEL_STACK_OFFSET), but from top of stack.
    
    Semi-mysterious expressions THREAD_INFO(%rsp,RIP) - "why RIP??"
    are now replaced by more logical THREAD_INFO(%rsp,SIZEOF_PTREGS)
    - "calculate thread_info's address using information that
    rsp is SIZEOF_PTREGS bytes below top of stack".
    
    While at it, replace "(off)-THREAD_SIZE(reg)" with equivalent
    "((off)-THREAD_SIZE)(reg)". The form without parentheses
    falsely looks like we invoke THREAD_SIZE() macro.
    
    Improve comment atop THREAD_INFO macro definition.
    
    This patch does not change generated code (verified by objdump).
    Signed-off-by: default avatarDenys Vlasenko <dvlasenk@redhat.com>
    Acked-by: default avatarBorislav Petkov <bp@suse.de>
    Acked-by: default avatarAndy Lutomirski <luto@kernel.org>
    Cc: Alexei Starovoitov <ast@plumgrid.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@alien8.de>
    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: Will Drewry <wad@chromium.org>
    Link: http://lkml.kernel.org/r/1426785469-15125-1-git-send-email-dvlasenk@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    b3fe8ba3
entry_64.S 41.5 KB