diff options
author | David Drysdale <drysdale@google.com> | 2014-12-12 19:57:39 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-13 15:42:51 -0500 |
commit | 38351a329d9c778608491f27955838233ca7337c (patch) | |
tree | e476370cc2c30b15da39c185a3f527120a9c92d0 /arch/sparc | |
parent | c9b26b81af9c3296685b5dbcbcd415400ab400dc (diff) |
sparc: hook up execveat system call
Signed-off-by: David Drysdale <drysdale@google.com>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/include/uapi/asm/unistd.h | 3 | ||||
-rw-r--r-- | arch/sparc/kernel/syscalls.S | 10 | ||||
-rw-r--r-- | arch/sparc/kernel/systbls_32.S | 1 | ||||
-rw-r--r-- | arch/sparc/kernel/systbls_64.S | 2 |
4 files changed, 15 insertions, 1 deletions
diff --git a/arch/sparc/include/uapi/asm/unistd.h b/arch/sparc/include/uapi/asm/unistd.h index 46d83842eddc..6f35f4df17f2 100644 --- a/arch/sparc/include/uapi/asm/unistd.h +++ b/arch/sparc/include/uapi/asm/unistd.h | |||
@@ -415,8 +415,9 @@ | |||
415 | #define __NR_getrandom 347 | 415 | #define __NR_getrandom 347 |
416 | #define __NR_memfd_create 348 | 416 | #define __NR_memfd_create 348 |
417 | #define __NR_bpf 349 | 417 | #define __NR_bpf 349 |
418 | #define __NR_execveat 350 | ||
418 | 419 | ||
419 | #define NR_syscalls 350 | 420 | #define NR_syscalls 351 |
420 | 421 | ||
421 | /* Bitmask values returned from kern_features system call. */ | 422 | /* Bitmask values returned from kern_features system call. */ |
422 | #define KERN_FEATURE_MIXED_MODE_STACK 0x00000001 | 423 | #define KERN_FEATURE_MIXED_MODE_STACK 0x00000001 |
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S index 33a17e7b3ccd..bb0008927598 100644 --- a/arch/sparc/kernel/syscalls.S +++ b/arch/sparc/kernel/syscalls.S | |||
@@ -6,6 +6,11 @@ sys64_execve: | |||
6 | jmpl %g1, %g0 | 6 | jmpl %g1, %g0 |
7 | flushw | 7 | flushw |
8 | 8 | ||
9 | sys64_execveat: | ||
10 | set sys_execveat, %g1 | ||
11 | jmpl %g1, %g0 | ||
12 | flushw | ||
13 | |||
9 | #ifdef CONFIG_COMPAT | 14 | #ifdef CONFIG_COMPAT |
10 | sunos_execv: | 15 | sunos_execv: |
11 | mov %g0, %o2 | 16 | mov %g0, %o2 |
@@ -13,6 +18,11 @@ sys32_execve: | |||
13 | set compat_sys_execve, %g1 | 18 | set compat_sys_execve, %g1 |
14 | jmpl %g1, %g0 | 19 | jmpl %g1, %g0 |
15 | flushw | 20 | flushw |
21 | |||
22 | sys32_execveat: | ||
23 | set compat_sys_execveat, %g1 | ||
24 | jmpl %g1, %g0 | ||
25 | flushw | ||
16 | #endif | 26 | #endif |
17 | 27 | ||
18 | .align 32 | 28 | .align 32 |
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S index ad0cdf497b78..e31a9056a303 100644 --- a/arch/sparc/kernel/systbls_32.S +++ b/arch/sparc/kernel/systbls_32.S | |||
@@ -87,3 +87,4 @@ sys_call_table: | |||
87 | /*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev | 87 | /*335*/ .long sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev |
88 | /*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr | 88 | /*340*/ .long sys_ni_syscall, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr |
89 | /*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf | 89 | /*345*/ .long sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf |
90 | /*350*/ .long sys_execveat | ||
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S index 580cde9370c9..d72f76ae70eb 100644 --- a/arch/sparc/kernel/systbls_64.S +++ b/arch/sparc/kernel/systbls_64.S | |||
@@ -88,6 +88,7 @@ sys_call_table32: | |||
88 | .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev | 88 | .word sys_syncfs, compat_sys_sendmmsg, sys_setns, compat_sys_process_vm_readv, compat_sys_process_vm_writev |
89 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr | 89 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr |
90 | .word sys32_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf | 90 | .word sys32_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf |
91 | /*350*/ .word sys32_execveat | ||
91 | 92 | ||
92 | #endif /* CONFIG_COMPAT */ | 93 | #endif /* CONFIG_COMPAT */ |
93 | 94 | ||
@@ -167,3 +168,4 @@ sys_call_table: | |||
167 | .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev | 168 | .word sys_syncfs, sys_sendmmsg, sys_setns, sys_process_vm_readv, sys_process_vm_writev |
168 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr | 169 | /*340*/ .word sys_kern_features, sys_kcmp, sys_finit_module, sys_sched_setattr, sys_sched_getattr |
169 | .word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf | 170 | .word sys_renameat2, sys_seccomp, sys_getrandom, sys_memfd_create, sys_bpf |
171 | /*350*/ .word sys64_execveat | ||