[PATCH V2 5/5] powerpc: Preserve the SPR values across fork() syscalls
Cyril Bur
cyrilbur at gmail.com
Tue Apr 5 09:59:27 AEST 2016
Currently copy_thread() doesn't flush SPRs to the parent thread struct.
Currently this only affects the TAR register as perf takes care of some of the
others and the remaining ones are all Event Based Branch (EBB) registers which
are cleared across fork().
Signed-off-by: Cyril Bur <cyrilbur at gmail.com>
---
arch/powerpc/kernel/process.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 7625976..892c76d 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1037,6 +1037,8 @@ void flush_all_to_thread(struct task_struct *tsk)
BUG_ON(tsk != current);
save_all(tsk);
+ save_sprs(&tsk->thread);
+
#ifdef CONFIG_SPE
if (tsk->thread.regs->msr & MSR_SPE)
tsk->thread.spefscr = mfspr(SPRN_SPEFSCR);
--
2.7.4
More information about the Linuxppc-dev
mailing list