diff options
| author | Dan Williams <dan.j.williams@intel.com> | 2017-08-31 16:25:59 -0700 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2017-08-31 16:25:59 -0700 |
| commit | 8f98ae0c9b90bb46097e4f28e81e9ae6148e5694 (patch) | |
| tree | c1d0f0d9b0733bf3271780e45d7a1c299fe2fc48 /arch/powerpc/kernel/process.c | |
| parent | 58738c495e15badd2015e19ff41f1f1ed55200bc (diff) | |
| parent | 5e405595e5bf4c09fab9ca1e7dbe5b62872757b5 (diff) | |
Merge branch 'for-4.14/fs' into libnvdimm-for-next
Diffstat (limited to 'arch/powerpc/kernel/process.c')
| -rw-r--r-- | arch/powerpc/kernel/process.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 9f3e2c932dcc..1f0fd361e09b 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -362,7 +362,8 @@ void enable_kernel_vsx(void) cpumsr = msr_check_and_set(MSR_FP|MSR_VEC|MSR_VSX); - if (current->thread.regs && (current->thread.regs->msr & MSR_VSX)) { + if (current->thread.regs && + (current->thread.regs->msr & (MSR_VSX|MSR_VEC|MSR_FP))) { check_if_tm_restore_required(current); /* * If a thread has already been reclaimed then the @@ -386,7 +387,7 @@ void flush_vsx_to_thread(struct task_struct *tsk) { if (tsk->thread.regs) { preempt_disable(); - if (tsk->thread.regs->msr & MSR_VSX) { + if (tsk->thread.regs->msr & (MSR_VSX|MSR_VEC|MSR_FP)) { BUG_ON(tsk != current); giveup_vsx(tsk); } @@ -511,10 +512,6 @@ void restore_math(struct pt_regs *regs) { unsigned long msr; - /* - * Syscall exit makes a similar initial check before branching - * to restore_math. Keep them in synch. - */ if (!msr_tm_active(regs->msr) && !current->thread.load_fp && !loadvec(current->thread)) return; |
