• Andy Lutomirski's avatar
    x86/entry: Add enter_from_user_mode() and use it in syscalls · feed36cd
    Andy Lutomirski authored
    Changing the x86 context tracking hooks is dangerous because
    there are no good checks that we track our context correctly.
    Add a helper to check that we're actually in CONTEXT_USER when
    we enter from user mode and wire it up for syscall entries.
    
    Subsequent patches will wire this up for all non-NMI entries as
    well.  NMIs are their own special beast and cannot currently
    switch overall context tracking state.  Instead, they have their
    own special RCU hooks.
    
    This is a tiny speedup if !CONFIG_CONTEXT_TRACKING (removes a
    branch) and a tiny slowdown if CONFIG_CONTEXT_TRACING (adds a
    layer of indirection).  Eventually, we should fix up the core
    context tracking code to supply a function that does what we
    want (and can be much simpler than user_exit), which will enable
    us to get rid of the extra call.
    Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Denys Vlasenko <vda.linux@googlemail.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: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: paulmck@linux.vnet.ibm.com
    Link: http://lkml.kernel.org/r/853b42420066ec3fb856779cdc223a6dcb5d355b.1435952415.git.luto@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    feed36cd
common.c 6.49 KB