patch-2.1.21 linux/include/asm-sparc/uaccess.h

Next file: linux/include/asm-sparc64/uaccess.h
Previous file: linux/include/asm-m68k/uaccess.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.20/linux/include/asm-sparc/uaccess.h linux/include/asm-sparc/uaccess.h
@@ -59,7 +59,7 @@
  *
  * There is a special way how to put a range of potentially faulting
  * insns (like twenty ldd/std's with now intervening other instructions)
- * You specify address of first in insn and 0 in fixup and in the next 
+ * You specify address of first in insn and 0 in fixup and in the next
  * exception_table_entry you specify last potentially faulting insn + 1
  * and in fixup the routine which should handle the fault.
  * That fixup code will get
@@ -163,11 +163,12 @@
 	".align	4\n"							\
 "3:\n\t"								\
 	"b	2b\n\t"							\
-	" mov	%3, %0\n\n\t"						\
+	" mov	%3, %0\n\t"						\
+        ".previous\n\n\t"						\
 	".section __ex_table,#alloc\n\t"				\
 	".align	4\n\t"							\
 	".word	1b, 3b\n\t"						\
-	".text\n\n\t"							\
+	".previous\n\n\t"						\
        : "=&r" (ret) : "r" (x), "r" (__m(addr)),			\
 	 "i" (-EFAULT))
 
@@ -179,7 +180,7 @@
 	".section __ex_table,#alloc\n\t"				\
 	".align	4\n\t"							\
 	".word	1b, __ret_efault\n\n\t"					\
-	".text\n\n\t"							\
+	".previous\n\n\t"						\
        : "=r" (foo) : "r" (x), "r" (__m(addr)));			\
 else									\
 __asm__ __volatile(							\
@@ -189,11 +190,12 @@
 	".align	4\n"							\
 "3:\n\t"								\
 	"ret\n\t"							\
-	" restore %%g0, %3, %%o0\n\n\t"					\
+	" restore %%g0, %3, %%o0\n\t"					\
+	".previous\n\n\t"						\
 	".section __ex_table,#alloc\n\t"				\
 	".align	4\n\t"							\
 	".word	1b, 3b\n\n\t"						\
-	".text\n\n\t"							\
+	".previous\n\n\t"						\
        : "=r" (foo) : "r" (x), "r" (__m(addr)), "i" (ret))
 
 extern int __put_user_bad(void);
@@ -250,10 +252,11 @@
 	"clr	%1\n\t"							\
 	"b	2b\n\t"							\
 	" mov	%3, %0\n\n\t"						\
+	".previous\n\t"							\
 	".section __ex_table,#alloc\n\t"				\
 	".align	4\n\t"							\
 	".word	1b, 3b\n\n\t"						\
-	".text\n\t"							\
+	".previous\n\t"							\
        : "=&r" (ret), "=&r" (x) : "r" (__m(addr)),			\
 	 "i" (-EFAULT))
 
@@ -265,7 +268,7 @@
 	".section __ex_table,#alloc\n\t"				\
 	".align	4\n\t"							\
 	".word	1b,__ret_efault\n\n\t"					\
-	".text\n\t"							\
+	".previous\n\t"							\
        : "=&r" (x) : "r" (__m(addr)));					\
 else									\
 __asm__ __volatile__(							\
@@ -276,10 +279,11 @@
 "3:\n\t"								\
 	"ret\n\t"							\
 	" restore %%g0, %2, %%o0\n\n\t"					\
+	".previous\n\t"							\
 	".section __ex_table,#alloc\n\t"				\
 	".align	4\n\t"							\
 	".word	1b, 3b\n\n\t"						\
-	".text\n\t"							\
+	".previous\n\t"							\
        : "=&r" (x) : "r" (__m(addr)), "i" (retval))
 
 extern int __get_user_bad(void);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov