From faa0fdb1194172f578f973097d61e580bce528dc Mon Sep 17 00:00:00 2001 From: Matthieu Castet Date: Wed, 16 Jan 2013 14:02:50 +0100 Subject: arm syscall : for eabi call_default don't use stack In the default case, we don't need to use the stack, we can save r7 with ip register (that what does eglibc). This allow to fix vfork data corruption (see 3884bfe9661955543ce203c60f9225bbdf33f6bb), because vfork now don't use the stack. --- libc/arch-arm/syscalls/setrlimit.S | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'libc/arch-arm/syscalls/setrlimit.S') diff --git a/libc/arch-arm/syscalls/setrlimit.S b/libc/arch-arm/syscalls/setrlimit.S index 0fe2467..02b8db4 100644 --- a/libc/arch-arm/syscalls/setrlimit.S +++ b/libc/arch-arm/syscalls/setrlimit.S @@ -3,11 +3,10 @@ #include ENTRY(setrlimit) - .save {r4, r7} - stmfd sp!, {r4, r7} + mov ip, r7 ldr r7, =__NR_setrlimit swi #0 - ldmfd sp!, {r4, r7} + mov r7, ip movs r0, r0 bxpl lr b __set_syscall_errno -- cgit v1.1