• Dave Hansen's avatar
    x86/cpufeature, x86/mm/pkeys: Fix broken compile-time disabling of pkeys · e06916ba
    Dave Hansen authored
    commit e8df1a95 upstream.
    
    When I added support for the Memory Protection Keys processor
    feature, I had to reindent the REQUIRED/DISABLED_MASK macros, and
    also consult the later cpufeature words.
    
    I'm not quite sure how I bungled it, but I consulted the wrong
    word at the end.  This only affected required or disabled cpu
    features in cpufeature words 14, 15 and 16.  So, only Protection
    Keys itself was screwed over here.
    
    The result was that if you disabled pkeys in your .config, you
    might still see some code show up that should have been compiled
    out.  There should be no functional problems, though.
    
    In verifying this patch I also realized that the DISABLE_PKU/OSPKE
    macros were defined backwards and that the cpu_has() check in
    setup_pku() was not doing the compile-time disabled checks.
    
    So also fix the macro for DISABLE_PKU/OSPKE and add a compile-time
    check for pkeys being enabled in setup_pku().
    Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Dave Hansen <dave@sr71.net>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Fixes: dfb4a70f ("x86/cpufeature, x86/mm/pkeys: Add protection keys related CPUID definitions")
    Link: http://lkml.kernel.org/r/20160513221328.C200930B@viggo.jf.intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e06916ba
common.c 37.9 KB