aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorGeorge G. Davis <davis_g@mvista.com>2005-09-13 17:55:00 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2005-09-13 17:55:00 -0400
commit34f521fd5552fff2a5f892f4c3dbc75e309ad63b (patch)
tree2ad7a7637266b27a3c85d54eb0ad73c451913047 /arch/arm/kernel
parent2f4ba45a75d6383b4a1201169a808ffea416ffa0 (diff)
[ARM] 2896/1: Add sys_ipc_wrapper to pass 'fifth' argument on stack
Patch from George G. Davis As pointed out be Matthew Klahn <MKLAHN@motorola.com>, some sys_ipc() call options require six args, e.g. SEMTIMEDOP. This patch adds an ARM sys_ipc_wrapper to save the sys_ipc() 'fifth' arg on the stack. Signed-off-by: George G. Davis <gdavis@mvista.com> arch/arm/kernel/calls.S | 2 +- arch/arm/kernel/entry-common.S | 5 +++++ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/calls.S2
-rw-r--r--arch/arm/kernel/entry-common.S4
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 949ec4427f21..2ad4aa2a1536 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -131,7 +131,7 @@ __syscall_start:
131 .long sys_wait4 131 .long sys_wait4
132/* 115 */ .long sys_swapoff 132/* 115 */ .long sys_swapoff
133 .long sys_sysinfo 133 .long sys_sysinfo
134 .long sys_ipc 134 .long sys_ipc_wrapper
135 .long sys_fsync 135 .long sys_fsync
136 .long sys_sigreturn_wrapper 136 .long sys_sigreturn_wrapper
137/* 120 */ .long sys_clone_wrapper 137/* 120 */ .long sys_clone_wrapper
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index db302c6e5343..81d450ac3fab 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -273,6 +273,10 @@ sys_mbind_wrapper:
273 str r5, [sp, #4] 273 str r5, [sp, #4]
274 b sys_mbind 274 b sys_mbind
275 275
276sys_ipc_wrapper:
277 str r5, [sp, #4] @ push sixth arg
278 b sys_ipc
279
276/* 280/*
277 * Note: off_4k (r5) is always units of 4K. If we can't do the requested 281 * Note: off_4k (r5) is always units of 4K. If we can't do the requested
278 * offset, we return EINVAL. 282 * offset, we return EINVAL.