powerpc: Remove redundant clear of MSR_VSX in __giveup_vsx()
__giveup_fpu() already does it and we cannot have MSR_VSX set without having MSR_FP also set. This also adds a warning to check we indeed do Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
Родитель
746874d31c
Коммит
dc801081f2
|
@ -331,11 +331,19 @@ static inline int restore_altivec(struct task_struct *tsk) { return 0; }
|
|||
#ifdef CONFIG_VSX
|
||||
static void __giveup_vsx(struct task_struct *tsk)
|
||||
{
|
||||
if (tsk->thread.regs->msr & MSR_FP)
|
||||
unsigned long msr = tsk->thread.regs->msr;
|
||||
|
||||
/*
|
||||
* We should never be ssetting MSR_VSX without also setting
|
||||
* MSR_FP and MSR_VEC
|
||||
*/
|
||||
WARN_ON((msr & MSR_VSX) && !((msr & MSR_FP) && (msr & MSR_VEC)));
|
||||
|
||||
/* __giveup_fpu will clear MSR_VSX */
|
||||
if (msr & MSR_FP)
|
||||
__giveup_fpu(tsk);
|
||||
if (tsk->thread.regs->msr & MSR_VEC)
|
||||
if (msr & MSR_VEC)
|
||||
__giveup_altivec(tsk);
|
||||
tsk->thread.regs->msr &= ~MSR_VSX;
|
||||
}
|
||||
|
||||
static void giveup_vsx(struct task_struct *tsk)
|
||||
|
|
Загрузка…
Ссылка в новой задаче