summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/sparc64/lib/NGcopy_to_user.S2
-rw-r--r--arch/sparc64/lib/NGmemcpy.S10
2 files changed, 8 insertions, 4 deletions
diff --git a/arch/sparc64/lib/NGcopy_to_user.S b/arch/sparc64/lib/NGcopy_to_user.S
index 4a12395b4502..34112d5054ef 100644
--- a/arch/sparc64/lib/NGcopy_to_user.S
+++ b/arch/sparc64/lib/NGcopy_to_user.S
@@ -37,4 +37,4 @@
nop
#endif
-#include "U3memcpy.S"
+#include "NGmemcpy.S"
diff --git a/arch/sparc64/lib/NGmemcpy.S b/arch/sparc64/lib/NGmemcpy.S
index a39aa3bd4345..8e522b3dc095 100644
--- a/arch/sparc64/lib/NGmemcpy.S
+++ b/arch/sparc64/lib/NGmemcpy.S
@@ -5,11 +5,15 @@
#ifdef __KERNEL__
#include <asm/asi.h>
+#include <asm/thread_info.h>
#define GLOBAL_SPARE %g7
-#define RESTORE_ASI wr %g0, ASI_AIUS, %asi
+#define RESTORE_ASI(TMP) \
+ ldub [%g6 + TI_CURRENT_DS], TMP; \
+ wr TMP, 0x0, %asi;
#else
#define GLOBAL_SPARE %g5
-#define RESTORE_ASI
+#define RESTORE_ASI(TMP) \
+ wr %g0, ASI_PNF, %asi
#endif
#ifndef STORE_ASI
@@ -246,7 +250,7 @@ FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */
/* %o2 contains any final bytes still needed to be copied
* over. If anything is left, we copy it one byte at a time.
*/
- RESTORE_ASI
+ RESTORE_ASI(%o3)
brz,pt %o2, 85f
sub %o0, %o1, %o3
ba,a,pt %XCC, 90f