aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/process.c')
-rw-r--r--arch/powerpc/kernel/process.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 9ef4aea9fffe..27f0caee55ea 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1250,17 +1250,9 @@ struct task_struct *__switch_to(struct task_struct *prev,
1250 * mappings. If the new process has the foreign real address 1250 * mappings. If the new process has the foreign real address
1251 * mappings, we must issue a cp_abort to clear any state and 1251 * mappings, we must issue a cp_abort to clear any state and
1252 * prevent snooping, corruption or a covert channel. 1252 * prevent snooping, corruption or a covert channel.
1253 *
1254 * DD1 allows paste into normal system memory so we do an
1255 * unpaired copy, rather than cp_abort, to clear the buffer,
1256 * since cp_abort is quite expensive.
1257 */ 1253 */
1258 if (current_thread_info()->task->thread.used_vas) { 1254 if (current_thread_info()->task->thread.used_vas)
1259 asm volatile(PPC_CP_ABORT); 1255 asm volatile(PPC_CP_ABORT);
1260 } else if (cpu_has_feature(CPU_FTR_POWER9_DD1)) {
1261 asm volatile(PPC_COPY(%0, %1)
1262 : : "r"(dummy_copy_buffer), "r"(0));
1263 }
1264 } 1256 }
1265#endif /* CONFIG_PPC_BOOK3S_64 */ 1257#endif /* CONFIG_PPC_BOOK3S_64 */
1266 1258