aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/kernel/process.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-08-27 15:03:30 +1000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-08-27 15:03:30 +1000
commit3f1f4311881b330a7b5429dd101e676df191b159 (patch)
treea2533df8b157a7006c8c0cb2f89de32820135e50 /arch/powerpc/kernel/process.c
parent5935ff4343a689fbb382d64408bc6955c6589830 (diff)
parent28e61cc466d8daace4b0f04ba2b83e0bd68f5832 (diff)
Merge branch 'merge' into next
Merge stuff that already went into Linus via "merge" which are pre-reqs for subsequent patches
Diffstat (limited to 'arch/powerpc/kernel/process.c')
-rw-r--r--arch/powerpc/kernel/process.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 0ec255a81c66..6f428da53e20 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -602,6 +602,16 @@ struct task_struct *__switch_to(struct task_struct *prev,
struct ppc64_tlb_batch *batch;
#endif
+ /* Back up the TAR across context switches.
+ * Note that the TAR is not available for use in the kernel. (To
+ * provide this, the TAR should be backed up/restored on exception
+ * entry/exit instead, and be in pt_regs. FIXME, this should be in
+ * pt_regs anyway (for debug).)
+ * Save the TAR here before we do treclaim/trecheckpoint as these
+ * will change the TAR.
+ */
+ save_tar(&prev->thread);
+
__switch_to_tm(prev);
#ifdef CONFIG_SMP