3 # Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
6 --- linux-2.4.27/include/asm-arm/system.h~gcc-registerparanoia 2003-08-25 07:44:43.000000000 -0400
7 +++ linux-2.4.27/include/asm-arm/system.h 2004-11-27 15:32:23.613933592 -0500
13 + * This is used to ensure the compiler did actually allocate the register we
14 + * asked it for some inline assembly sequences. Apparently we can't trust
15 + * the compiler from one version to another so a bit of paranoia won't hurt.
16 + * This string is meant to be concatenated with the inline asm string and
17 + * will cause compilation to stop on mismatch.
19 +#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
21 #include <linux/config.h>
22 #include <linux/kernel.h>
24 --- linux-2.4.27/include/asm-arm/uaccess.h~gcc-registerparanoia 2001-10-25 16:53:55.000000000 -0400
25 +++ linux-2.4.27/include/asm-arm/uaccess.h 2004-11-27 15:32:23.613933592 -0500
28 #include <linux/sched.h>
29 #include <asm/errno.h>
30 +#include <asm/system.h>
33 #define VERIFY_WRITE 1
35 extern int __get_user_bad(void);
37 #define __get_user_x(__r1,__p,__e,__s,__i...) \
38 - __asm__ __volatile__ ("bl __get_user_" #__s \
39 + __asm__ __volatile__ ( \
40 + __asmeq("%0", "r0") __asmeq("%1", "r1") \
41 + "bl __get_user_" #__s \
42 : "=&r" (__e), "=r" (__r1) \
46 extern int __put_user_bad(void);
48 #define __put_user_x(__r1,__p,__e,__s,__i...) \
49 - __asm__ __volatile__ ("bl __put_user_" #__s \
50 + __asm__ __volatile__ ( \
51 + __asmeq("%0", "r0") __asmeq("%2", "r1") \
52 + "bl __put_user_" #__s \
54 : "0" (__p), "r" (__r1) \