diff options
author | Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> | 2008-09-17 13:39:45 +0200 |
---|---|---|
committer | Haavard Skinnemoen <haavard.skinnemoen@atmel.com> | 2008-09-19 18:21:31 +0200 |
commit | 73d4393d1df4ff3892b040396f101ede94e9e846 (patch) | |
tree | e819398b568c074c1d68d39173bfd68529966168 /arch/avr32/kernel/syscall-stubs.S | |
parent | e37925ebdb9738fc7968119198c6997e79093c02 (diff) | |
download | lwn-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.S | 9 |
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 |