• Ingo Molnar's avatar
    x86/fpu: Disable XSAVES* support for now · 8e592180
    Ingo Molnar authored
    commit e88221c5 upstream.
    
    The kernel's handling of 'compacted' xsave state layout is buggy:
    
        http://marc.info/?l=linux-kernel&m=142967852317199
    
    I don't have such a system, and the description there is vague, but
    from extrapolation I guess that there were two kinds of bugs
    observed:
    
      - boot crashes, due to size calculations being wrong and the dynamic
        allocation allocating a too small xstate area. (This is now fixed
        in the new FPU code - but still present in stable kernels.)
    
      - FPU state corruption and ABI breakage: if signal handlers try to
        change the FPU state in standard format, which then the kernel
        tries to restore in the compacted format.
    
    These breakages are scary, but they only occur on a small number of
    systems that have XSAVES* CPU support. Yet we have had XSAVES support
    in the upstream kernel for a large number of stable kernel releases,
    and the fixes are involved and unproven.
    
    So do the safe resolution first: disable XSAVES* support and only
    use the standard xstate format. This makes the code work and is
    easy to backport.
    
    On top of this we can work on enabling (and testing!) proper
    compacted format support, without backporting pressure, on top of the
    new, cleaned up FPU code.
    
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    8e592180
i387.c 15.3 KB