Skip to content
  • Dave Hansen's avatar
    x86/mm/pkeys: Actually enable Memory Protection Keys in the CPU · 06976945
    Dave Hansen authored
    
    
    This sets the bit in 'cr4' to actually enable the protection
    keys feature.  We also include a boot-time disable for the
    feature "nopku".
    
    Seting X86_CR4_PKE will cause the X86_FEATURE_OSPKE cpuid
    bit to appear set.  At this point in boot, identify_cpu()
    has already run the actual CPUID instructions and populated
    the "cpu features" structures.  We need to go back and
    re-run identify_cpu() to make sure it gets updated values.
    
    We *could* simply re-populate the 11th word of the cpuid
    data, but this is probably quick enough.
    
    Also note that with the cpu_has() check and X86_FEATURE_PKU
    present in disabled-features.h, we do not need an #ifdef
    for setup_pku().
    
    Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
    Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Dave Hansen <dave@sr71.net>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/20160212210229.6708027C@viggo.jf.intel.com
    
    
    [ Small readability edits. ]
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    06976945