diff options
Diffstat (limited to 'arch/x86')
| -rw-r--r-- | arch/x86/include/asm/syscalls.h | 5 | ||||
| -rw-r--r-- | arch/x86/kernel/process.c | 5 | ||||
| -rw-r--r-- | arch/x86/kernel/sys_i386_32.c | 4 |
3 files changed, 9 insertions, 5 deletions
diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h index feb2ff9bfc2d..f1d8b441fc77 100644 --- a/arch/x86/include/asm/syscalls.h +++ b/arch/x86/include/asm/syscalls.h | |||
| @@ -23,8 +23,9 @@ long sys_iopl(unsigned int, struct pt_regs *); | |||
| 23 | /* kernel/process.c */ | 23 | /* kernel/process.c */ |
| 24 | int sys_fork(struct pt_regs *); | 24 | int sys_fork(struct pt_regs *); |
| 25 | int sys_vfork(struct pt_regs *); | 25 | int sys_vfork(struct pt_regs *); |
| 26 | long sys_execve(const char __user *, char __user * __user *, | 26 | long sys_execve(const char __user *, |
| 27 | char __user * __user *, struct pt_regs *); | 27 | const char __user *const __user *, |
| 28 | const char __user *const __user *, struct pt_regs *); | ||
| 28 | long sys_clone(unsigned long, unsigned long, void __user *, | 29 | long sys_clone(unsigned long, unsigned long, void __user *, |
| 29 | void __user *, struct pt_regs *); | 30 | void __user *, struct pt_regs *); |
| 30 | 31 | ||
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 64ecaf0af9af..57d1868a86aa 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c | |||
| @@ -301,8 +301,9 @@ EXPORT_SYMBOL(kernel_thread); | |||
| 301 | /* | 301 | /* |
| 302 | * sys_execve() executes a new program. | 302 | * sys_execve() executes a new program. |
| 303 | */ | 303 | */ |
| 304 | long sys_execve(const char __user *name, char __user * __user *argv, | 304 | long sys_execve(const char __user *name, |
| 305 | char __user * __user *envp, struct pt_regs *regs) | 305 | const char __user *const __user *argv, |
| 306 | const char __user *const __user *envp, struct pt_regs *regs) | ||
| 306 | { | 307 | { |
| 307 | long error; | 308 | long error; |
| 308 | char *filename; | 309 | char *filename; |
diff --git a/arch/x86/kernel/sys_i386_32.c b/arch/x86/kernel/sys_i386_32.c index 196552bb412c..d5e06624e34a 100644 --- a/arch/x86/kernel/sys_i386_32.c +++ b/arch/x86/kernel/sys_i386_32.c | |||
| @@ -28,7 +28,9 @@ | |||
| 28 | * Do a system call from kernel instead of calling sys_execve so we | 28 | * Do a system call from kernel instead of calling sys_execve so we |
| 29 | * end up with proper pt_regs. | 29 | * end up with proper pt_regs. |
| 30 | */ | 30 | */ |
| 31 | int kernel_execve(const char *filename, char *const argv[], char *const envp[]) | 31 | int kernel_execve(const char *filename, |
| 32 | const char *const argv[], | ||
| 33 | const char *const envp[]) | ||
| 32 | { | 34 | { |
| 33 | long __res; | 35 | long __res; |
| 34 | asm volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" | 36 | asm volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" |
