summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/lib/vmx-helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/lib/vmx-helper.c')
-rw-r--r--arch/powerpc/lib/vmx-helper.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/powerpc/lib/vmx-helper.c b/arch/powerpc/lib/vmx-helper.c
index 753a839f4a14..3cf529ceec5b 100644
--- a/arch/powerpc/lib/vmx-helper.c
+++ b/arch/powerpc/lib/vmx-helper.c
@@ -49,3 +49,26 @@ int exit_vmx_usercopy(void)
pagefault_enable();
return 0;
}
+
+int enter_vmx_copy(void)
+{
+ if (in_interrupt())
+ return 0;
+
+ preempt_disable();
+
+ enable_kernel_altivec();
+
+ return 1;
+}
+
+/*
+ * All calls to this function will be optimised into tail calls. We are
+ * passed a pointer to the destination which we return as required by a
+ * memcpy implementation.
+ */
+void *exit_vmx_copy(void *dest)
+{
+ preempt_enable();
+ return dest;
+}