2006-10-04 17:59:16

by Martin Schwidefsky

[permalink] [raw]
Subject: [S390] Wire up sys_getcpu system call.

From: Heiko Carstens <[email protected]>

[S390] Wire up sys_getcpu system call.

Signed-off-by: Heiko Carstens <[email protected]>
---

arch/s390/kernel/compat_wrapper.S | 7 +++++++
arch/s390/kernel/syscalls.S | 2 ++
include/asm-s390/unistd.h | 4 +++-
3 files changed, 12 insertions(+), 1 deletion(-)

diff -urpN linux-2.6/arch/s390/kernel/compat_wrapper.S linux-2.6-patched/arch/s390/kernel/compat_wrapper.S
--- linux-2.6/arch/s390/kernel/compat_wrapper.S 2006-10-04 19:53:26.000000000 +0200
+++ linux-2.6-patched/arch/s390/kernel/compat_wrapper.S 2006-10-04 19:53:48.000000000 +0200
@@ -1658,3 +1658,10 @@ compat_sys_vmsplice_wrapper:
llgfr %r4,%r4 # unsigned int
llgfr %r5,%r5 # unsigned int
jg compat_sys_vmsplice
+
+ .globl sys_getcpu_wrapper
+sys_getcpu_wrapper:
+ llgtr %r2,%r2 # unsigned *
+ llgtr %r3,%r3 # unsigned *
+ llgtr %r4,%r4 # struct getcpu_cache *
+ jg sys_tee
diff -urpN linux-2.6/arch/s390/kernel/syscalls.S linux-2.6-patched/arch/s390/kernel/syscalls.S
--- linux-2.6/arch/s390/kernel/syscalls.S 2006-09-20 05:42:06.000000000 +0200
+++ linux-2.6-patched/arch/s390/kernel/syscalls.S 2006-10-04 19:53:48.000000000 +0200
@@ -318,3 +318,5 @@ SYSCALL(sys_splice,sys_splice,sys_splice
SYSCALL(sys_sync_file_range,sys_sync_file_range,sys_sync_file_range_wrapper)
SYSCALL(sys_tee,sys_tee,sys_tee_wrapper)
SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice_wrapper)
+NI_SYSCALL /* 310 sys_move_pages */
+SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper)
diff -urpN linux-2.6/include/asm-s390/unistd.h linux-2.6-patched/include/asm-s390/unistd.h
--- linux-2.6/include/asm-s390/unistd.h 2006-10-04 19:53:37.000000000 +0200
+++ linux-2.6-patched/include/asm-s390/unistd.h 2006-10-04 19:53:48.000000000 +0200
@@ -247,8 +247,10 @@
#define __NR_sync_file_range 307
#define __NR_tee 308
#define __NR_vmsplice 309
+/* Number 310 is reserved for new sys_move_pages */
+#define __NR_getcpu 311

-#define NR_syscalls 310
+#define NR_syscalls 312

/*
* There are some system calls that are not present on 64 bit, some