• Ingo Molnar's avatar
    x86/fpu: Better document fpu__clear() state handling · 2e85591a
    Ingo Molnar authored
    So prior to this fix:
    
      c88d4748 ("x86/fpu: Always restore_xinit_state() when use_eager_cpu()")
    
    we leaked FPU state across execve() boundaries on eagerfpu systems:
    
    	$ /host/home/mingo/dump-xmm-regs-exec
    	# XMM state before execve():
    	XMM0 : 000000000000dede
    	XMM1 : 000000000000dedf
    	XMM2 : 000000000000dee0
    	XMM3 : 000000000000dee1
    	XMM4 : 000000000000dee2
    	XMM5 : 000000000000dee3
    	XMM6 : 000000000000dee4
    	XMM7 : 000000000000dee5
    	XMM8 : 000000000000dee6
    	XMM9 : 000000000000dee7
    	XMM10: 000000000000dee8
    	XMM11: 000000000000dee9
    	XMM12: 000000000000deea
    	XMM13: 000000000000deeb
    	XMM14: 000000000000deec
    	XMM15: 000000000000deed
    
    	# XMM state after execve(), in the new task context:
    	XMM0 : 0000000000000000
    	XMM1 : 2f2f2f2f2f2f2f2f
    	XMM2 : 0000000000000000
    	XMM3 : 0000000000000000
    	XMM4 : 00000000000000ff
    	XMM5 : 00000000ff000000
    	XMM6 : 000000000000dee4
    	XMM7 : 000000000000dee5
    	XMM8 : 0000000000000000
    	XMM9 : 0000000000000000
    	XMM10: 0000000000000000
    	XMM11: 0000000000000000
    	XMM12: 0000000000000000
    	XMM13: 000000000000deeb
    	XMM14: 000000000000deec
    	XMM15: 000000000000deed
    
    Better explain what this function is supposed to do and why.
    Reviewed-by: default avatarBorislav Petkov <bp@alien8.de>
    Cc: Andy Lutomirski <luto@amacapital.net>
    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>
    2e85591a
core.c 17.3 KB