diff options
Diffstat (limited to 'recipes/linux/unslung-kernel/gcc3-userfuncs.patch')
-rw-r--r-- | recipes/linux/unslung-kernel/gcc3-userfuncs.patch | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/recipes/linux/unslung-kernel/gcc3-userfuncs.patch b/recipes/linux/unslung-kernel/gcc3-userfuncs.patch new file mode 100644 index 0000000000..54726bf740 --- /dev/null +++ b/recipes/linux/unslung-kernel/gcc3-userfuncs.patch @@ -0,0 +1,134 @@ + +# +# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher +# + +--- linux-2.4.22/arch/arm/lib/getuser.S~gcc3-userfuncs 2004-09-08 19:14:05.000000000 -0500 ++++ linux-2.4.22/arch/arm/lib/getuser.S 2004-09-08 19:49:27.000000000 -0500 +@@ -42,17 +42,17 @@ + + .global __get_user_2 + __get_user_2: +- bic r2, sp, #0x1f00 +- bic r2, r2, #0x00ff +- ldr r2, [r2, #TSK_ADDR_LIMIT] +- sub r2, r2, #2 +- cmp r0, r2 ++ bic ip, sp, #0x1f00 ++ bic ip, ip, #0x00ff ++ ldr ip, [ip, #TSK_ADDR_LIMIT] ++ sub ip, ip, #2 ++ cmp r0, ip + 2: ldrlsbt r1, [r0], #1 +-3: ldrlsbt r2, [r0] ++3: ldrlsbt ip, [r0] + #ifndef __ARMEB__ +- orrls r1, r1, r2, lsl #8 ++ orrls r1, r1, ip, lsl #8 + #else +- orrls r1, r2, r1, lsl #8 ++ orrls r1, ip, r1, lsl #8 + #endif + movls r0, #0 + movls pc, lr +--- linux-2.4.22/arch/arm/lib/putuser.S~gcc3-userfuncs 2004-09-08 19:14:05.000000000 -0500 ++++ linux-2.4.22/arch/arm/lib/putuser.S 2004-09-08 19:45:00.000000000 -0500 +@@ -18,7 +18,7 @@ + * Inputs: r0 contains the address + * r1, r2 contains the value + * Outputs: r0 is the error code +- * lr corrupted ++ * ip, lr corrupted + * + * No other registers must be altered. (see include/asm-arm/uaccess.h + * for specific ASM register usage). +@@ -30,11 +30,11 @@ + + .global __put_user_1 + __put_user_1: +- bic r2, sp, #0x1f00 +- bic r2, r2, #0x00ff +- ldr r2, [r2, #TSK_ADDR_LIMIT] +- sub r2, r2, #1 +- cmp r0, r2 ++ bic ip, sp, #0x1f00 ++ bic ip, ip, #0x00ff ++ ldr ip, [ip, #TSK_ADDR_LIMIT] ++ sub ip, ip, #1 ++ cmp r0, ip + 1: strlsbt r1, [r0] + movls r0, #0 + movls pc, lr +@@ -42,20 +42,20 @@ + + .global __put_user_2 + __put_user_2: +- bic r2, sp, #0x1f00 +- bic r2, r2, #0x00ff +- ldr r2, [r2, #TSK_ADDR_LIMIT] +- sub r2, r2, #2 +- cmp r0, r2 ++ bic ip, sp, #0x1f00 ++ bic ip, ip, #0x00ff ++ ldr ip, [ip, #TSK_ADDR_LIMIT] ++ sub ip, ip, #2 ++ cmp r0, ip + #ifndef __ARMEB__ + 2: strlsbt r1, [r0], #1 + movls r1, r1, lsr #8 + 3: strlsbt r1, [r0] + #else +-2: movls r2, r1 ++2: movls ip, r1 + movls r1, r1, lsr #8 + strlsbt r1, [r0], #1 +- movls r1, r2 ++ movls r1, ip + 3: strlsbt r1, [r0] + #endif + movls r0, #0 +@@ -64,11 +64,11 @@ + + .global __put_user_4 + __put_user_4: +- bic r2, sp, #0x1f00 +- bic r2, r2, #0x00ff +- ldr r2, [r2, #TSK_ADDR_LIMIT] +- sub r2, r2, #4 +- cmp r0, r2 ++ bic ip, sp, #0x1f00 ++ bic ip, ip, #0x00ff ++ ldr ip, [ip, #TSK_ADDR_LIMIT] ++ sub ip, ip, #4 ++ cmp r0, ip + 4: strlst r1, [r0] + movls r0, #0 + movls pc, lr +--- linux-2.4.22/include/asm-arm/uaccess.h~gcc3-userfuncs 2004-09-08 19:36:03.000000000 -0500 ++++ linux-2.4.22/include/asm-arm/uaccess.h 2004-09-08 20:03:34.000000000 -0500 +@@ -86,7 +86,7 @@ + __get_user_x(__r1, __p, __e, 1, "lr"); \ + break; \ + case 2: \ +- __get_user_x(__r1, __p, __e, 2, "r2", "lr"); \ ++ __get_user_x(__r1, __p, __e, 2, "ip", "lr"); \ + break; \ + case 4: \ + __get_user_x(__r1, __p, __e, 4, "lr"); \ +@@ -122,13 +122,13 @@ + register int __e asm("r0"); \ + switch (sizeof(*(p))) { \ + case 1: \ +- __put_user_x(__r1, __p, __e, 1, "r2", "lr"); \ ++ __put_user_x(__r1, __p, __e, 1, "ip", "lr"); \ + break; \ + case 2: \ +- __put_user_x(__r1, __p, __e, 2, "r2", "lr"); \ ++ __put_user_x(__r1, __p, __e, 2, "ip", "lr"); \ + break; \ + case 4: \ +- __put_user_x(__r1, __p, __e, 4, "r2", "lr"); \ ++ __put_user_x(__r1, __p, __e, 4, "ip", "lr"); \ + break; \ + case 8: \ + __put_user_x(__r1, __p, __e, 8, "ip", "lr"); \ |