| #include <asm/bug.h> |
| #include <asm/uaccess.h> |
| |
| #define __KERNEL_SYSCALLS__ |
| static int errno __attribute__((unused)); |
| #include <asm/unistd.h> |
| |
| #ifdef _syscall3 |
| int kernel_execve (const char *filename, char *const argv[], char *const envp[]) |
| __attribute__((__weak__)); |
| int kernel_execve (const char *filename, char *const argv[], char *const envp[]) |
| { |
| mm_segment_t fs = get_fs(); |
| int ret; |
| |
| WARN_ON(segment_eq(fs, USER_DS)); |
| ret = execve(filename, (char **)argv, (char **)envp); |
| if (ret) |
| ret = -errno; |
| |
| return ret; |
| } |
| #endif |