• Paul Mackerras's avatar
    [PATCH] powerpc: Avoid potential FP corruption with preempt and UP · 5388fb10
    Paul Mackerras authored
    Heikki Lindholm pointed out that there was a potential race with the
    lazy CPU state (FP, VR, EVR) stuff if preempt is enabled.  The race
    is that in the process of restoring FP state on sigreturn, the task
    gets preempted by a user task that wants to use the FPU.  It will take
    an FP unavailable exception, which will write the current FPU state
    to the thread_struct, overwriting the values which sigreturn has
    stored.  Note that this can only happen on UP since we don't implement
    lazy CPU state on SMP.
    
    The fix is to flush the lazy CPU state before updating the
    thread_struct.  To do this we re-use the flush_lazy_cpu_state()
    function from process.c.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    5388fb10
process.c 21.9 KB