patch-2.4.4 linux/arch/arm/kernel/entry-common.S
Next file: linux/arch/arm/kernel/fiq.c
Previous file: linux/arch/arm/kernel/entry-armv.S
Back to the patch index
Back to the overall index
- Lines: 41
- Date:
Thu Apr 12 12:20:31 2001
- Orig file:
v2.4.3/linux/arch/arm/kernel/entry-common.S
- Orig date:
Tue Mar 6 19:44:35 2001
diff -u --recursive --new-file v2.4.3/linux/arch/arm/kernel/entry-common.S linux/arch/arm/kernel/entry-common.S
@@ -35,9 +35,7 @@
.align 5
fast_syscall_return:
- str r0, [sp, #S_R0 + S_OFF] @ returned r0
-slow_syscall_return:
- add sp, sp, #S_OFF
+ str r0, [sp, #S_R0+S_OFF]! @ returned r0
ret_from_sys_call: @ external entry
get_softirq r0
get_current_task r5
@@ -52,6 +50,7 @@
bne ret_reschedule
teq r1, #0 @ check for signals
blne ret_signal
+
ret_from_all: restore_user_regs @ internal
ret_signal: mov r1, sp @ internal
@@ -132,7 +131,8 @@
str ip, [sp, #S_IP + S_OFF] @ trace exit [IP = 1]
bl SYMBOL_NAME(syscall_trace)
str tip, [sp, #S_IP + S_OFF]
- b slow_syscall_return
+ add sp, sp, #S_OFF
+ b ret_from_sys_call
2: add r1, sp, #S_OFF
tst scno, #0x00f00000 @ is it a Unix SWI?
@@ -142,8 +142,9 @@
b SYMBOL_NAME(sys_ni_syscall) @ not private func
3: eor r0, scno, #OS_NUMBER <<20 @ Put OS number back
- adrsvc al, lr, slow_syscall_return
- b SYMBOL_NAME(deferred)
+ bl SYMBOL_NAME(deferred)
+ add sp, sp, #S_OFF
+ b ret_from_sys_call
.align 5
.type __irq_stat, #object
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)