When we flush register state for FP, Altivec, or SPE in flush_*_to_threadwe need to respect the task_struct that the caller has passed to us.

Most cases we are called with current, however sometimes (ptrace) we maybe passed a different task_struct.

This showed up when using gdbserver debugging a simple program that usedfloating point. When gdb tried to show the FP regs they all showed up as0, because the child's FP registers were never properly flushed to memory.