aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-10-15 02:27:16 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-15 11:15:04 -0400
commit5fd0b580a9fda554eae27fff4953e6622bd792d7 (patch)
tree8dddf797bfb5c5cd8ad9a657fca39cd2fbbb5b28 /arch/avr32
parent5adc807f707535a5ce97b5d69472ee74d6d099ac (diff)
avr32: switch to generic sys_execve()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/avr32')
-rw-r--r--arch/avr32/include/asm/unistd.h1
-rw-r--r--arch/avr32/kernel/process.c21
-rw-r--r--arch/avr32/kernel/syscall-stubs.S6
-rw-r--r--arch/avr32/kernel/syscall_table.S2
4 files changed, 2 insertions, 28 deletions
diff --git a/arch/avr32/include/asm/unistd.h b/arch/avr32/include/asm/unistd.h
index 157b4bd3d5e5..641023d1bcb5 100644
--- a/arch/avr32/include/asm/unistd.h
+++ b/arch/avr32/include/asm/unistd.h
@@ -39,6 +39,7 @@
39#define __ARCH_WANT_SYS_GETPGRP 39#define __ARCH_WANT_SYS_GETPGRP
40#define __ARCH_WANT_SYS_RT_SIGACTION 40#define __ARCH_WANT_SYS_RT_SIGACTION
41#define __ARCH_WANT_SYS_RT_SIGSUSPEND 41#define __ARCH_WANT_SYS_RT_SIGSUSPEND
42#define __ARCH_WANT_SYS_EXECVE
42 43
43/* 44/*
44 * "Conditional" syscalls 45 * "Conditional" syscalls
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c
index 07380c3a4f78..09b894d96d6e 100644
--- a/arch/avr32/kernel/process.c
+++ b/arch/avr32/kernel/process.c
@@ -349,27 +349,6 @@ asmlinkage int sys_vfork(struct pt_regs *regs)
349 0, NULL, NULL); 349 0, NULL, NULL);
350} 350}
351 351
352asmlinkage int sys_execve(const char __user *ufilename,
353 const char __user *const __user *uargv,
354 const char __user *const __user *uenvp,
355 struct pt_regs *regs)
356{
357 int error;
358 struct filename *filename;
359
360 filename = getname(ufilename);
361 error = PTR_ERR(filename);
362 if (IS_ERR(filename))
363 goto out;
364
365 error = do_execve(filename->name, uargv, uenvp, regs);
366 putname(filename);
367
368out:
369 return error;
370}
371
372
373/* 352/*
374 * This function is supposed to answer the question "who called 353 * This function is supposed to answer the question "who called
375 * schedule()?" 354 * schedule()?"
diff --git a/arch/avr32/kernel/syscall-stubs.S b/arch/avr32/kernel/syscall-stubs.S
index 0447a3e2ba64..285a61b9194e 100644
--- a/arch/avr32/kernel/syscall-stubs.S
+++ b/arch/avr32/kernel/syscall-stubs.S
@@ -50,12 +50,6 @@ __sys_vfork:
50 mov r12, sp 50 mov r12, sp
51 rjmp sys_vfork 51 rjmp sys_vfork
52 52
53 .global __sys_execve
54 .type __sys_execve,@function
55__sys_execve:
56 mov r9, sp
57 rjmp sys_execve
58
59 .global __sys_mmap2 53 .global __sys_mmap2
60 .type __sys_mmap2,@function 54 .type __sys_mmap2,@function
61__sys_mmap2: 55__sys_mmap2:
diff --git a/arch/avr32/kernel/syscall_table.S b/arch/avr32/kernel/syscall_table.S
index 6eba53530d1c..fc6497706819 100644
--- a/arch/avr32/kernel/syscall_table.S
+++ b/arch/avr32/kernel/syscall_table.S
@@ -24,7 +24,7 @@ sys_call_table:
24 .long sys_creat 24 .long sys_creat
25 .long sys_link 25 .long sys_link
26 .long sys_unlink /* 10 */ 26 .long sys_unlink /* 10 */
27 .long __sys_execve 27 .long sys_execve
28 .long sys_chdir 28 .long sys_chdir
29 .long sys_time 29 .long sys_time
30 .long sys_mknod 30 .long sys_mknod