• C
    x86/fsgsbase/64: Introduce FS/GS base helper functions · b1378a56
    Chang S. Bae 提交于
    Introduce FS/GS base access functionality via <asm/fsgsbase.h>,
    not yet used by anything directly.
    
    Factor out task_seg_base() from x86/ptrace.c and rename it to
    x86_fsgsbase_read_task() to make it part of the new helpers.
    
    This will allow us to enhance FSGSBASE support and eventually enable
    the FSBASE/GSBASE instructions.
    
    An "inactive" GS base refers to a base saved at kernel entry
    and being part of an inactive, non-running/stopped user-task.
    (The typical ptrace model.)
    
    Here are the new functions:
    
      x86_fsbase_read_task()
      x86_gsbase_read_task()
      x86_fsbase_write_task()
      x86_gsbase_write_task()
      x86_fsbase_read_cpu()
      x86_fsbase_write_cpu()
      x86_gsbase_read_cpu_inactive()
      x86_gsbase_write_cpu_inactive()
    
    As an advantage of the unified namespace we can now see all FS/GSBASE
    API use in the kernel via the following 'git grep' pattern:
    
      $ git grep x86_.*sbase
    
    [ mingo: Wrote new changelog. ]
    
    Based-on-code-from: Andy Lutomirski <luto@kernel.org>
    Suggested-by: NIngo Molnar <mingo@kernel.org>
    Signed-off-by: NChang S. Bae <chang.seok.bae@intel.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Markus T Metzger <markus.t.metzger@intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi Shankar <ravi.v.shankar@intel.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1537312139-5580-3-git-send-email-chang.seok.bae@intel.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
    b1378a56
fsgsbase.h 1.2 KB