# # 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"); \