summaryrefslogtreecommitdiff
path: root/arch/avr32/kernel/syscall-stubs.S
diff options
context:
space:
mode:
authorHans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>2008-09-17 13:39:45 +0200
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>2008-09-19 18:21:31 +0200
commit73d4393d1df4ff3892b040396f101ede94e9e846 (patch)
treee819398b568c074c1d68d39173bfd68529966168 /arch/avr32/kernel/syscall-stubs.S
parente37925ebdb9738fc7968119198c6997e79093c02 (diff)
downloadlwn-73d4393d1df4ff3892b040396f101ede94e9e846.tar.gz
lwn-73d4393d1df4ff3892b040396f101ede94e9e846.zip
avr32: fix sys_sync_file_range() call convention
On AVR32, all parameters beyond the 5th are passed on the stack. System calls don't use the stack -- they borrow a callee-saved register instead. This means that syscalls that take 6 parameters must be called through a stub that pushes the last parameter on the stack. This patch adds a stub for sync_file_range syscall on AVR32 architecture. Tested with uClibc snapshot. Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Diffstat (limited to 'arch/avr32/kernel/syscall-stubs.S')
-rw-r--r--arch/avr32/kernel/syscall-stubs.S9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/avr32/kernel/syscall-stubs.S b/arch/avr32/kernel/syscall-stubs.S
index 890286a1e62b..673178e235f3 100644
--- a/arch/avr32/kernel/syscall-stubs.S
+++ b/arch/avr32/kernel/syscall-stubs.S
@@ -109,3 +109,12 @@ __sys_epoll_pwait:
rcall sys_epoll_pwait
sub sp, -4
popm pc
+
+ .global __sys_sync_file_range
+ .type __sys_sync_file_range,@function
+__sys_sync_file_range:
+ pushm lr
+ st.w --sp, ARG6
+ rcall sys_sync_file_range
+ sub sp, -4
+ popm pc