summaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/entry.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-02-15 02:15:32 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-02-15 02:15:32 +0000
commit86464aed71025541805e7b1515541aee89879e33 (patch)
treee01a457a4912a8553bc65524aa3125d51f29f810 /arch/alpha/kernel/entry.S
parent88f99939ecc6a95a79614574cb7d95ffccfc3466 (diff)
Merge with Linux 2.2.1.
Diffstat (limited to 'arch/alpha/kernel/entry.S')
-rw-r--r--arch/alpha/kernel/entry.S23
1 files changed, 17 insertions, 6 deletions
diff --git a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
index f349ebd6b..380af2c9c 100644
--- a/arch/alpha/kernel/entry.S
+++ b/arch/alpha/kernel/entry.S
@@ -8,10 +8,9 @@
#define halt .long PAL_halt
#define rti .long PAL_rti
-#define SIGCHLD 20
+#define SIGCHLD 20
-#define NR_SYSCALLS 370
-#define osf_vfork sys_fork
+#define NR_SYSCALLS 371
/*
* These offsets must match with alpha_mv in <asm/machvec.h>.
@@ -502,6 +501,17 @@ sys_clone:
.end sys_clone
.align 3
+.globl sys_vfork
+.ent sys_vfork
+sys_vfork:
+ bsr $1,do_switch_stack
+ bis $30,$30,$16
+ jsr $26,alpha_vfork
+ bsr $1,undo_switch_stack
+ ret $31,($26),1
+.end sys_vfork
+
+.align 3
.globl alpha_switch_to
.ent alpha_switch_to
alpha_switch_to:
@@ -689,7 +699,8 @@ ret_from_smpfork:
.set at
mb /* Make the changed data visible before the freed lock. */
stq $31,scheduler_lock
- br ret_from_sys_call
+ lda $26,ret_from_sys_call
+ jsr $31,schedule_tail
.set noat
.end ret_from_smpfork
#endif /* __SMP__ */
@@ -821,7 +832,7 @@ sys_call_table:
.quad sys_getpgrp
.quad sys_getpagesize
.quad alpha_ni_syscall /* 65 */
- .quad osf_vfork
+ .quad sys_vfork
.quad sys_newstat
.quad sys_newlstat
.quad alpha_ni_syscall
@@ -1127,4 +1138,4 @@ sys_call_table:
.quad sys_getcwd
.quad sys_capget
.quad sys_capset
- .quad sys_ni_syscall /* 370 */
+ .quad sys_sendfile /* 370 */