dslinux/linux-2.6.x/include/asm-arm uaccess.h

amadeus dslinux_amadeus at user.in-berlin.de
Mon Aug 14 20:46:47 CEST 2006


Update of /cvsroot/dslinux/dslinux/linux-2.6.x/include/asm-arm
In directory antilope:/tmp/cvs-serv476/linux-2.6.x/include/asm-arm

Modified Files:
	uaccess.h 
Log Message:
8bit write cleanup

Index: uaccess.h
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/include/asm-arm/uaccess.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- uaccess.h	20 Feb 2006 16:03:06 -0000	1.2
+++ uaccess.h	14 Aug 2006 18:46:45 -0000	1.3
@@ -16,6 +16,7 @@
 #include <asm/memory.h>
 #include <asm/domain.h>
 #include <asm/system.h>
+#include <linux/config.h>
 
 #define VERIFY_READ 0
 #define VERIFY_WRITE 1
@@ -287,6 +288,24 @@
 	}								\
 } while (0)
 
+#ifdef CONFIG_NDS_ROM8BIT
+#define __put_user_asm_byte(x,__pu_addr,err)			\
+	__asm__ __volatile__(					\
+	"1:	swpb	ip, %1,[%2]\n"				\
+	"2:\n"							\
+	"	.section .fixup,\"ax\"\n"			\
+	"	.align	2\n"					\
+	"3:	mov	%0, %3\n"				\
+	"	b	2b\n"					\
+	"	.previous\n"					\
+	"	.section __ex_table,\"a\"\n"			\
+	"	.align	3\n"					\
+	"	.long	1b, 3b\n"				\
+	"	.previous"					\
+	: "+r" (err)						\
+	: "r" (x), "r" (__pu_addr), "i" (-EFAULT)		\
+	: "ip", "cc")
+#else
 #define __put_user_asm_byte(x,__pu_addr,err)			\
 	__asm__ __volatile__(					\
 	"1:	strbt	%1,[%2],#0\n"				\
@@ -303,6 +322,7 @@
 	: "+r" (err)						\
 	: "r" (x), "r" (__pu_addr), "i" (-EFAULT)		\
 	: "cc")
+#endif
 
 #ifndef __ARMEB__
 #define __put_user_asm_half(x,__pu_addr,err)			\




More information about the dslinux-commit mailing list