summaryrefslogtreecommitdiffstats
path: root/arch/avr32/kernel/syscall-stubs.S
diff options
context:
space:
mode:
authorHans-Christian Noren Egtvedt <egtvedt@samfundet.no>2016-05-29 21:11:53 +0200
committerHans-Christian Noren Egtvedt <egtvedt@samfundet.no>2016-07-29 11:55:57 +0200
commit389ce5a9616b5c2ae386a1fde7401762a4ed1b37 (patch)
tree9f89ef7dad5cdeb7bed996de6b1784b52de397ea /arch/avr32/kernel/syscall-stubs.S
parent523d939ef98fd712632d93a5a2b588e477a7565e (diff)
downloadlinux-389ce5a9616b5c2ae386a1fde7401762a4ed1b37.tar.gz
linux-389ce5a9616b5c2ae386a1fde7401762a4ed1b37.tar.xz
avr32: wire up preadv2 and pwritev2 syscalls
This patch wires up the new preadv2 and pwritev2 syscall on AVR32. 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. Signed-off-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
Diffstat (limited to 'arch/avr32/kernel/syscall-stubs.S')
-rw-r--r--arch/avr32/kernel/syscall-stubs.S18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/avr32/kernel/syscall-stubs.S b/arch/avr32/kernel/syscall-stubs.S
index cb3991552f14..cb256534ed92 100644
--- a/arch/avr32/kernel/syscall-stubs.S
+++ b/arch/avr32/kernel/syscall-stubs.S
@@ -133,3 +133,21 @@ __sys_copy_file_range:
call sys_copy_file_range
sub sp, -4
popm pc
+
+ .global __sys_preadv2
+ .type __sys_preadv2,@function
+__sys_preadv2:
+ pushm lr
+ st.w --sp, ARG6
+ call sys_preadv2
+ sub sp, -4
+ popm pc
+
+ .global __sys_pwritev2
+ .type __sys_pwritev2,@function
+__sys_pwritev2:
+ pushm lr
+ st.w --sp, ARG6
+ call sys_pwritev2
+ sub sp, -4
+ popm pc