• Dave Hansen's avatar
    x86/pkeys: Make protection keys an "eager" feature · d4b05923
    Dave Hansen authored
    Our XSAVE features are divided into two categories: those that
    generate FPU exceptions, and those that do not.  MPX and pkeys do
    not generate FPU exceptions and thus can not be used lazily.  We
    disable them when lazy mode is forced on.
    
    We have a pair of masks to collect these two sets of features, but
    XFEATURE_MASK_PKRU was added to the wrong mask: XFEATURE_MASK_LAZY.
    Fix it by moving the feature to XFEATURE_MASK_EAGER.
    
    Note: this only causes problem if you boot with lazy FPU mode
    (eagerfpu=off) which is *not* the default.  It also only affects
    hardware which is not currently publicly available.  It looks like
    eager mode is going away, but we still need this patch applied
    to any kernel that has protection keys and lazy mode, which is 4.6
    through 4.8 at this point, and 4.9 if the lazy removal isn't sent
    to Linus for 4.9.
    
    Fixes: c8df4009 ("x86/fpu, x86/mm/pkeys: Add PKRU xsave fields and data structures")
    Signed-off-by: default avatarDave Hansen <dave.hansen@intel.com>
    Cc: Dave Hansen <dave@sr71.net>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/20161007162342.28A49813@viggo.jf.intel.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    d4b05923
xstate.h 1.72 KB