mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-05-18 17:46:45 +00:00
powerpc: fix giveup_vsx to save registers correctly
giveup_vsx didn't save the FPU and VMX regsiters. Change it to be like giveup_fpr/altivec which save these registers. Also update call sites where FPU and VMX are already saved to use the original giveup_vsx (renamed to __giveup_vsx). Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
committed by
Benjamin Herrenschmidt
parent
01f4b8b8b8
commit
7c29217096
@@ -159,6 +159,13 @@ void enable_kernel_vsx(void)
|
||||
EXPORT_SYMBOL(enable_kernel_vsx);
|
||||
#endif
|
||||
|
||||
void giveup_vsx(struct task_struct *tsk)
|
||||
{
|
||||
giveup_fpu(tsk);
|
||||
giveup_altivec(tsk);
|
||||
__giveup_vsx(tsk);
|
||||
}
|
||||
|
||||
void flush_vsx_to_thread(struct task_struct *tsk)
|
||||
{
|
||||
if (tsk->thread.regs) {
|
||||
@@ -290,7 +297,8 @@ struct task_struct *__switch_to(struct task_struct *prev,
|
||||
#endif /* CONFIG_ALTIVEC */
|
||||
#ifdef CONFIG_VSX
|
||||
if (prev->thread.regs && (prev->thread.regs->msr & MSR_VSX))
|
||||
giveup_vsx(prev);
|
||||
/* VMX and FPU registers are already save here */
|
||||
__giveup_vsx(prev);
|
||||
#endif /* CONFIG_VSX */
|
||||
#ifdef CONFIG_SPE
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user