diff options
44 files changed, 125 insertions, 109 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 88131c6e42e3..fb58150a7e8f 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c | |||
| @@ -244,7 +244,7 @@ do_osf_statfs(struct path *path, struct osf_statfs __user *buffer, | |||
| 244 | return error; | 244 | return error; |
| 245 | } | 245 | } |
| 246 | 246 | ||
| 247 | SYSCALL_DEFINE3(osf_statfs, char __user *, pathname, | 247 | SYSCALL_DEFINE3(osf_statfs, const char __user *, pathname, |
| 248 | struct osf_statfs __user *, buffer, unsigned long, bufsiz) | 248 | struct osf_statfs __user *, buffer, unsigned long, bufsiz) |
| 249 | { | 249 | { |
| 250 | struct path path; | 250 | struct path path; |
| @@ -358,7 +358,7 @@ osf_procfs_mount(char *dirname, struct procfs_args __user *args, int flags) | |||
| 358 | return do_mount("", dirname, "proc", flags, NULL); | 358 | return do_mount("", dirname, "proc", flags, NULL); |
| 359 | } | 359 | } |
| 360 | 360 | ||
| 361 | SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, char __user *, path, | 361 | SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, const char __user *, path, |
| 362 | int, flag, void __user *, data) | 362 | int, flag, void __user *, data) |
| 363 | { | 363 | { |
| 364 | int retval; | 364 | int retval; |
| @@ -932,7 +932,7 @@ SYSCALL_DEFINE3(osf_setitimer, int, which, struct itimerval32 __user *, in, | |||
| 932 | 932 | ||
| 933 | } | 933 | } |
| 934 | 934 | ||
| 935 | SYSCALL_DEFINE2(osf_utimes, char __user *, filename, | 935 | SYSCALL_DEFINE2(osf_utimes, const char __user *, filename, |
| 936 | struct timeval32 __user *, tvs) | 936 | struct timeval32 __user *, tvs) |
| 937 | { | 937 | { |
| 938 | struct timespec tv[2]; | 938 | struct timespec tv[2]; |
diff --git a/arch/alpha/kernel/process.c b/arch/alpha/kernel/process.c index 395a464353b8..88e608aebc8c 100644 --- a/arch/alpha/kernel/process.c +++ b/arch/alpha/kernel/process.c | |||
| @@ -387,7 +387,7 @@ EXPORT_SYMBOL(dump_elf_task_fp); | |||
| 387 | * sys_execve() executes a new program. | 387 | * sys_execve() executes a new program. |
| 388 | */ | 388 | */ |
| 389 | asmlinkage int | 389 | asmlinkage int |
| 390 | do_sys_execve(char __user *ufilename, char __user * __user *argv, | 390 | do_sys_execve(const char __user *ufilename, char __user * __user *argv, |
| 391 | char __user * __user *envp, struct pt_regs *regs) | 391 | char __user * __user *envp, struct pt_regs *regs) |
| 392 | { | 392 | { |
| 393 | int error; | 393 | int error; |
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c index c23501842b98..5b7c541a4c63 100644 --- a/arch/arm/kernel/sys_arm.c +++ b/arch/arm/kernel/sys_arm.c | |||
| @@ -62,7 +62,7 @@ asmlinkage int sys_vfork(struct pt_regs *regs) | |||
| 62 | /* sys_execve() executes a new program. | 62 | /* sys_execve() executes a new program. |
| 63 | * This is called indirectly via a small wrapper | 63 | * This is called indirectly via a small wrapper |
| 64 | */ | 64 | */ |
| 65 | asmlinkage int sys_execve(char __user *filenamei, char __user * __user *argv, | 65 | asmlinkage int sys_execve(const char __user *filenamei, char __user * __user *argv, |
| 66 | char __user * __user *envp, struct pt_regs *regs) | 66 | char __user * __user *envp, struct pt_regs *regs) |
| 67 | { | 67 | { |
| 68 | int error; | 68 | int error; |
| @@ -84,7 +84,7 @@ int kernel_execve(const char *filename, char *const argv[], char *const envp[]) | |||
| 84 | int ret; | 84 | int ret; |
| 85 | 85 | ||
| 86 | memset(®s, 0, sizeof(struct pt_regs)); | 86 | memset(®s, 0, sizeof(struct pt_regs)); |
| 87 | ret = do_execve((char *)filename, (char __user * __user *)argv, | 87 | ret = do_execve(filename, (char __user * __user *)argv, |
| 88 | (char __user * __user *)envp, ®s); | 88 | (char __user * __user *)envp, ®s); |
| 89 | if (ret < 0) | 89 | if (ret < 0) |
| 90 | goto out; | 90 | goto out; |
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index 33ff678e32f2..4ad8da15ef2b 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c | |||
| @@ -141,7 +141,7 @@ static long cp_oldabi_stat64(struct kstat *stat, | |||
| 141 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; | 141 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; |
| 142 | } | 142 | } |
| 143 | 143 | ||
| 144 | asmlinkage long sys_oabi_stat64(char __user * filename, | 144 | asmlinkage long sys_oabi_stat64(const char __user * filename, |
| 145 | struct oldabi_stat64 __user * statbuf) | 145 | struct oldabi_stat64 __user * statbuf) |
| 146 | { | 146 | { |
| 147 | struct kstat stat; | 147 | struct kstat stat; |
| @@ -151,7 +151,7 @@ asmlinkage long sys_oabi_stat64(char __user * filename, | |||
| 151 | return error; | 151 | return error; |
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | asmlinkage long sys_oabi_lstat64(char __user * filename, | 154 | asmlinkage long sys_oabi_lstat64(const char __user * filename, |
| 155 | struct oldabi_stat64 __user * statbuf) | 155 | struct oldabi_stat64 __user * statbuf) |
| 156 | { | 156 | { |
| 157 | struct kstat stat; | 157 | struct kstat stat; |
| @@ -172,7 +172,7 @@ asmlinkage long sys_oabi_fstat64(unsigned long fd, | |||
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | asmlinkage long sys_oabi_fstatat64(int dfd, | 174 | asmlinkage long sys_oabi_fstatat64(int dfd, |
| 175 | char __user *filename, | 175 | const char __user *filename, |
| 176 | struct oldabi_stat64 __user *statbuf, | 176 | struct oldabi_stat64 __user *statbuf, |
| 177 | int flag) | 177 | int flag) |
| 178 | { | 178 | { |
diff --git a/arch/avr32/include/asm/syscalls.h b/arch/avr32/include/asm/syscalls.h index 66a197266637..ab608b70b24d 100644 --- a/arch/avr32/include/asm/syscalls.h +++ b/arch/avr32/include/asm/syscalls.h | |||
| @@ -21,7 +21,7 @@ asmlinkage int sys_clone(unsigned long, unsigned long, | |||
| 21 | unsigned long, unsigned long, | 21 | unsigned long, unsigned long, |
| 22 | struct pt_regs *); | 22 | struct pt_regs *); |
| 23 | asmlinkage int sys_vfork(struct pt_regs *); | 23 | asmlinkage int sys_vfork(struct pt_regs *); |
| 24 | asmlinkage int sys_execve(char __user *, char __user *__user *, | 24 | asmlinkage int sys_execve(const char __user *, char __user *__user *, |
| 25 | char __user *__user *, struct pt_regs *); | 25 | char __user *__user *, struct pt_regs *); |
| 26 | 26 | ||
| 27 | /* kernel/signal.c */ | 27 | /* kernel/signal.c */ |
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c index 2d76515745a4..e5daddff397d 100644 --- a/arch/avr32/kernel/process.c +++ b/arch/avr32/kernel/process.c | |||
| @@ -383,7 +383,8 @@ asmlinkage int sys_vfork(struct pt_regs *regs) | |||
| 383 | 0, NULL, NULL); | 383 | 0, NULL, NULL); |
| 384 | } | 384 | } |
| 385 | 385 | ||
| 386 | asmlinkage int sys_execve(char __user *ufilename, char __user *__user *uargv, | 386 | asmlinkage int sys_execve(const char __user *ufilename, |
| 387 | char __user *__user *uargv, | ||
| 387 | char __user *__user *uenvp, struct pt_regs *regs) | 388 | char __user *__user *uenvp, struct pt_regs *regs) |
| 388 | { | 389 | { |
| 389 | int error; | 390 | int error; |
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c index 93ec07da2e51..a566f61c002a 100644 --- a/arch/blackfin/kernel/process.c +++ b/arch/blackfin/kernel/process.c | |||
| @@ -209,7 +209,7 @@ copy_thread(unsigned long clone_flags, | |||
| 209 | /* | 209 | /* |
| 210 | * sys_execve() executes a new program. | 210 | * sys_execve() executes a new program. |
| 211 | */ | 211 | */ |
| 212 | asmlinkage int sys_execve(char __user *name, char __user * __user *argv, char __user * __user *envp) | 212 | asmlinkage int sys_execve(const char __user *name, char __user * __user *argv, char __user * __user *envp) |
| 213 | { | 213 | { |
| 214 | int error; | 214 | int error; |
| 215 | char *filename; | 215 | char *filename; |
diff --git a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c index 21d0fd19276d..428931cf2f0c 100644 --- a/arch/frv/kernel/process.c +++ b/arch/frv/kernel/process.c | |||
| @@ -250,7 +250,8 @@ int copy_thread(unsigned long clone_flags, | |||
| 250 | /* | 250 | /* |
| 251 | * sys_execve() executes a new program. | 251 | * sys_execve() executes a new program. |
| 252 | */ | 252 | */ |
| 253 | asmlinkage int sys_execve(char __user *name, char __user * __user *argv, char __user * __user *envp) | 253 | asmlinkage int sys_execve(const char __user *name, char __user * __user *argv, |
| 254 | char __user * __user *envp) | ||
| 254 | { | 255 | { |
| 255 | int error; | 256 | int error; |
| 256 | char * filename; | 257 | char * filename; |
diff --git a/arch/h8300/kernel/process.c b/arch/h8300/kernel/process.c index 8c8b0ffa6ad7..8b7b78d77d5c 100644 --- a/arch/h8300/kernel/process.c +++ b/arch/h8300/kernel/process.c | |||
| @@ -212,7 +212,7 @@ int copy_thread(unsigned long clone_flags, | |||
| 212 | /* | 212 | /* |
| 213 | * sys_execve() executes a new program. | 213 | * sys_execve() executes a new program. |
| 214 | */ | 214 | */ |
| 215 | asmlinkage int sys_execve(char *name, char **argv, char **envp,int dummy,...) | 215 | asmlinkage int sys_execve(const char *name, char **argv, char **envp,int dummy,...) |
| 216 | { | 216 | { |
| 217 | int error; | 217 | int error; |
| 218 | char * filename; | 218 | char * filename; |
diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h index bb8b0fff32b3..46f36fc5125f 100644 --- a/arch/ia64/include/asm/unistd.h +++ b/arch/ia64/include/asm/unistd.h | |||
| @@ -353,7 +353,7 @@ asmlinkage unsigned long sys_mmap2( | |||
| 353 | int fd, long pgoff); | 353 | int fd, long pgoff); |
| 354 | struct pt_regs; | 354 | struct pt_regs; |
| 355 | struct sigaction; | 355 | struct sigaction; |
| 356 | long sys_execve(char __user *filename, char __user * __user *argv, | 356 | long sys_execve(const char __user *filename, char __user * __user *argv, |
| 357 | char __user * __user *envp, struct pt_regs *regs); | 357 | char __user * __user *envp, struct pt_regs *regs); |
| 358 | asmlinkage long sys_ia64_pipe(void); | 358 | asmlinkage long sys_ia64_pipe(void); |
| 359 | asmlinkage long sys_rt_sigaction(int sig, | 359 | asmlinkage long sys_rt_sigaction(int sig, |
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 53f1648c8b81..a879c03b7f1c 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
| @@ -633,7 +633,7 @@ dump_fpu (struct pt_regs *pt, elf_fpregset_t dst) | |||
| 633 | } | 633 | } |
| 634 | 634 | ||
| 635 | long | 635 | long |
| 636 | sys_execve (char __user *filename, char __user * __user *argv, char __user * __user *envp, | 636 | sys_execve (const char __user *filename, char __user * __user *argv, char __user * __user *envp, |
| 637 | struct pt_regs *regs) | 637 | struct pt_regs *regs) |
| 638 | { | 638 | { |
| 639 | char *fname; | 639 | char *fname; |
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c index bc8c8c1511b2..8665a4d868ec 100644 --- a/arch/m32r/kernel/process.c +++ b/arch/m32r/kernel/process.c | |||
| @@ -288,7 +288,8 @@ asmlinkage int sys_vfork(unsigned long r0, unsigned long r1, unsigned long r2, | |||
| 288 | /* | 288 | /* |
| 289 | * sys_execve() executes a new program. | 289 | * sys_execve() executes a new program. |
| 290 | */ | 290 | */ |
| 291 | asmlinkage int sys_execve(char __user *ufilename, char __user * __user *uargv, | 291 | asmlinkage int sys_execve(const char __user *ufilename, |
| 292 | char __user * __user *uargv, | ||
| 292 | char __user * __user *uenvp, | 293 | char __user * __user *uenvp, |
| 293 | unsigned long r3, unsigned long r4, unsigned long r5, | 294 | unsigned long r3, unsigned long r4, unsigned long r5, |
| 294 | unsigned long r6, struct pt_regs regs) | 295 | unsigned long r6, struct pt_regs regs) |
diff --git a/arch/m68k/kernel/process.c b/arch/m68k/kernel/process.c index 1a6be27cf165..221d0b71ce39 100644 --- a/arch/m68k/kernel/process.c +++ b/arch/m68k/kernel/process.c | |||
| @@ -315,7 +315,7 @@ EXPORT_SYMBOL(dump_fpu); | |||
| 315 | /* | 315 | /* |
| 316 | * sys_execve() executes a new program. | 316 | * sys_execve() executes a new program. |
| 317 | */ | 317 | */ |
| 318 | asmlinkage int sys_execve(char __user *name, char __user * __user *argv, char __user * __user *envp) | 318 | asmlinkage int sys_execve(const char __user *name, char __user * __user *argv, char __user * __user *envp) |
| 319 | { | 319 | { |
| 320 | int error; | 320 | int error; |
| 321 | char * filename; | 321 | char * filename; |
diff --git a/arch/m68knommu/kernel/process.c b/arch/m68knommu/kernel/process.c index 6aa66134b433..6350f68cd026 100644 --- a/arch/m68knommu/kernel/process.c +++ b/arch/m68knommu/kernel/process.c | |||
| @@ -350,7 +350,7 @@ void dump(struct pt_regs *fp) | |||
| 350 | /* | 350 | /* |
| 351 | * sys_execve() executes a new program. | 351 | * sys_execve() executes a new program. |
| 352 | */ | 352 | */ |
| 353 | asmlinkage int sys_execve(char *name, char **argv, char **envp) | 353 | asmlinkage int sys_execve(const char *name, char **argv, char **envp) |
| 354 | { | 354 | { |
| 355 | int error; | 355 | int error; |
| 356 | char * filename; | 356 | char * filename; |
diff --git a/arch/microblaze/kernel/sys_microblaze.c b/arch/microblaze/kernel/sys_microblaze.c index f4e00b7f1259..6abab6ebedbe 100644 --- a/arch/microblaze/kernel/sys_microblaze.c +++ b/arch/microblaze/kernel/sys_microblaze.c | |||
| @@ -47,7 +47,7 @@ asmlinkage long microblaze_clone(int flags, unsigned long stack, struct pt_regs | |||
| 47 | return do_fork(flags, stack, regs, 0, NULL, NULL); | 47 | return do_fork(flags, stack, regs, 0, NULL, NULL); |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | asmlinkage long microblaze_execve(char __user *filenamei, char __user *__user *argv, | 50 | asmlinkage long microblaze_execve(const char __user *filenamei, char __user *__user *argv, |
| 51 | char __user *__user *envp, struct pt_regs *regs) | 51 | char __user *__user *envp, struct pt_regs *regs) |
| 52 | { | 52 | { |
| 53 | int error; | 53 | int error; |
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index 58bab2ef257f..bddce0bca195 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c | |||
| @@ -254,7 +254,7 @@ asmlinkage int sys_execve(nabi_no_regargs struct pt_regs regs) | |||
| 254 | int error; | 254 | int error; |
| 255 | char * filename; | 255 | char * filename; |
| 256 | 256 | ||
| 257 | filename = getname((char __user *) (long)regs.regs[4]); | 257 | filename = getname((const char __user *) (long)regs.regs[4]); |
| 258 | error = PTR_ERR(filename); | 258 | error = PTR_ERR(filename); |
| 259 | if (IS_ERR(filename)) | 259 | if (IS_ERR(filename)) |
| 260 | goto out; | 260 | goto out; |
diff --git a/arch/mn10300/kernel/process.c b/arch/mn10300/kernel/process.c index 82b817c7f7b6..762eb325b949 100644 --- a/arch/mn10300/kernel/process.c +++ b/arch/mn10300/kernel/process.c | |||
| @@ -268,7 +268,7 @@ asmlinkage long sys_vfork(void) | |||
| 268 | 0, NULL, NULL); | 268 | 0, NULL, NULL); |
| 269 | } | 269 | } |
| 270 | 270 | ||
| 271 | asmlinkage long sys_execve(char __user *name, | 271 | asmlinkage long sys_execve(const char __user *name, |
| 272 | char __user * __user *argv, | 272 | char __user * __user *argv, |
| 273 | char __user * __user *envp) | 273 | char __user * __user *envp) |
| 274 | { | 274 | { |
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c index 6935123178eb..1444875a7611 100644 --- a/arch/parisc/hpux/fs.c +++ b/arch/parisc/hpux/fs.c | |||
| @@ -36,7 +36,7 @@ int hpux_execve(struct pt_regs *regs) | |||
| 36 | int error; | 36 | int error; |
| 37 | char *filename; | 37 | char *filename; |
| 38 | 38 | ||
| 39 | filename = getname((char __user *) regs->gr[26]); | 39 | filename = getname((const char __user *) regs->gr[26]); |
| 40 | error = PTR_ERR(filename); | 40 | error = PTR_ERR(filename); |
| 41 | if (IS_ERR(filename)) | 41 | if (IS_ERR(filename)) |
| 42 | goto out; | 42 | goto out; |
| @@ -169,7 +169,7 @@ static int cp_hpux_stat(struct kstat *stat, struct hpux_stat64 __user *statbuf) | |||
| 169 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; | 169 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; |
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | long hpux_stat64(char __user *filename, struct hpux_stat64 __user *statbuf) | 172 | long hpux_stat64(const char __user *filename, struct hpux_stat64 __user *statbuf) |
| 173 | { | 173 | { |
| 174 | struct kstat stat; | 174 | struct kstat stat; |
| 175 | int error = vfs_stat(filename, &stat); | 175 | int error = vfs_stat(filename, &stat); |
| @@ -191,7 +191,8 @@ long hpux_fstat64(unsigned int fd, struct hpux_stat64 __user *statbuf) | |||
| 191 | return error; | 191 | return error; |
| 192 | } | 192 | } |
| 193 | 193 | ||
| 194 | long hpux_lstat64(char __user *filename, struct hpux_stat64 __user *statbuf) | 194 | long hpux_lstat64(const char __user *filename, |
| 195 | struct hpux_stat64 __user *statbuf) | ||
| 195 | { | 196 | { |
| 196 | struct kstat stat; | 197 | struct kstat stat; |
| 197 | int error = vfs_lstat(filename, &stat); | 198 | int error = vfs_lstat(filename, &stat); |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index e78a5add7f15..feacfb789686 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
| @@ -1027,7 +1027,7 @@ int sys_execve(unsigned long a0, unsigned long a1, unsigned long a2, | |||
| 1027 | int error; | 1027 | int error; |
| 1028 | char *filename; | 1028 | char *filename; |
| 1029 | 1029 | ||
| 1030 | filename = getname((char __user *) a0); | 1030 | filename = getname((const char __user *) a0); |
| 1031 | error = PTR_ERR(filename); | 1031 | error = PTR_ERR(filename); |
| 1032 | if (IS_ERR(filename)) | 1032 | if (IS_ERR(filename)) |
| 1033 | goto out; | 1033 | goto out; |
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c index 19471a1cef1a..20fd701a686a 100644 --- a/arch/powerpc/kernel/sys_ppc32.c +++ b/arch/powerpc/kernel/sys_ppc32.c | |||
| @@ -546,7 +546,7 @@ compat_ssize_t compat_sys_pread64(unsigned int fd, char __user *ubuf, compat_siz | |||
| 546 | return sys_pread64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo); | 546 | return sys_pread64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo); |
| 547 | } | 547 | } |
| 548 | 548 | ||
| 549 | compat_ssize_t compat_sys_pwrite64(unsigned int fd, char __user *ubuf, compat_size_t count, | 549 | compat_ssize_t compat_sys_pwrite64(unsigned int fd, const char __user *ubuf, compat_size_t count, |
| 550 | u32 reg6, u32 poshi, u32 poslo) | 550 | u32 reg6, u32 poshi, u32 poslo) |
| 551 | { | 551 | { |
| 552 | return sys_pwrite64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo); | 552 | return sys_pwrite64(fd, ubuf, count, ((loff_t)poshi << 32) | poslo); |
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index 73b624ed9cd8..1e6449c79ab6 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
| @@ -436,7 +436,7 @@ sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo) | |||
| 436 | * sys32_execve() executes a new program after the asm stub has set | 436 | * sys32_execve() executes a new program after the asm stub has set |
| 437 | * things up for us. This should basically do what I want it to. | 437 | * things up for us. This should basically do what I want it to. |
| 438 | */ | 438 | */ |
| 439 | asmlinkage long sys32_execve(char __user *name, compat_uptr_t __user *argv, | 439 | asmlinkage long sys32_execve(const char __user *name, compat_uptr_t __user *argv, |
| 440 | compat_uptr_t __user *envp) | 440 | compat_uptr_t __user *envp) |
| 441 | { | 441 | { |
| 442 | struct pt_regs *regs = task_pt_regs(current); | 442 | struct pt_regs *regs = task_pt_regs(current); |
| @@ -570,7 +570,7 @@ static int cp_stat64(struct stat64_emu31 __user *ubuf, struct kstat *stat) | |||
| 570 | return copy_to_user(ubuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; | 570 | return copy_to_user(ubuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; |
| 571 | } | 571 | } |
| 572 | 572 | ||
| 573 | asmlinkage long sys32_stat64(char __user * filename, struct stat64_emu31 __user * statbuf) | 573 | asmlinkage long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf) |
| 574 | { | 574 | { |
| 575 | struct kstat stat; | 575 | struct kstat stat; |
| 576 | int ret = vfs_stat(filename, &stat); | 576 | int ret = vfs_stat(filename, &stat); |
| @@ -579,7 +579,7 @@ asmlinkage long sys32_stat64(char __user * filename, struct stat64_emu31 __user | |||
| 579 | return ret; | 579 | return ret; |
| 580 | } | 580 | } |
| 581 | 581 | ||
| 582 | asmlinkage long sys32_lstat64(char __user * filename, struct stat64_emu31 __user * statbuf) | 582 | asmlinkage long sys32_lstat64(const char __user * filename, struct stat64_emu31 __user * statbuf) |
| 583 | { | 583 | { |
| 584 | struct kstat stat; | 584 | struct kstat stat; |
| 585 | int ret = vfs_lstat(filename, &stat); | 585 | int ret = vfs_lstat(filename, &stat); |
| @@ -597,7 +597,7 @@ asmlinkage long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * sta | |||
| 597 | return ret; | 597 | return ret; |
| 598 | } | 598 | } |
| 599 | 599 | ||
| 600 | asmlinkage long sys32_fstatat64(unsigned int dfd, char __user *filename, | 600 | asmlinkage long sys32_fstatat64(unsigned int dfd, const char __user *filename, |
| 601 | struct stat64_emu31 __user* statbuf, int flag) | 601 | struct stat64_emu31 __user* statbuf, int flag) |
| 602 | { | 602 | { |
| 603 | struct kstat stat; | 603 | struct kstat stat; |
| @@ -655,7 +655,7 @@ asmlinkage long sys32_read(unsigned int fd, char __user * buf, size_t count) | |||
| 655 | return sys_read(fd, buf, count); | 655 | return sys_read(fd, buf, count); |
| 656 | } | 656 | } |
| 657 | 657 | ||
| 658 | asmlinkage long sys32_write(unsigned int fd, char __user * buf, size_t count) | 658 | asmlinkage long sys32_write(unsigned int fd, const char __user * buf, size_t count) |
| 659 | { | 659 | { |
| 660 | if ((compat_ssize_t) count < 0) | 660 | if ((compat_ssize_t) count < 0) |
| 661 | return -EINVAL; | 661 | return -EINVAL; |
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h index cb97afc85c94..9635d759c2b9 100644 --- a/arch/s390/kernel/compat_linux.h +++ b/arch/s390/kernel/compat_linux.h | |||
| @@ -193,7 +193,7 @@ long sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, | |||
| 193 | compat_sigset_t __user *oset, size_t sigsetsize); | 193 | compat_sigset_t __user *oset, size_t sigsetsize); |
| 194 | long sys32_rt_sigpending(compat_sigset_t __user *set, size_t sigsetsize); | 194 | long sys32_rt_sigpending(compat_sigset_t __user *set, size_t sigsetsize); |
| 195 | long sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo); | 195 | long sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo); |
| 196 | long sys32_execve(char __user *name, compat_uptr_t __user *argv, | 196 | long sys32_execve(const char __user *name, compat_uptr_t __user *argv, |
| 197 | compat_uptr_t __user *envp); | 197 | compat_uptr_t __user *envp); |
| 198 | long sys32_init_module(void __user *umod, unsigned long len, | 198 | long sys32_init_module(void __user *umod, unsigned long len, |
| 199 | const char __user *uargs); | 199 | const char __user *uargs); |
| @@ -207,16 +207,16 @@ long sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offset, | |||
| 207 | size_t count); | 207 | size_t count); |
| 208 | long sys32_sendfile64(int out_fd, int in_fd, compat_loff_t __user *offset, | 208 | long sys32_sendfile64(int out_fd, int in_fd, compat_loff_t __user *offset, |
| 209 | s32 count); | 209 | s32 count); |
| 210 | long sys32_stat64(char __user * filename, struct stat64_emu31 __user * statbuf); | 210 | long sys32_stat64(const char __user * filename, struct stat64_emu31 __user * statbuf); |
| 211 | long sys32_lstat64(char __user * filename, | 211 | long sys32_lstat64(const char __user * filename, |
| 212 | struct stat64_emu31 __user * statbuf); | 212 | struct stat64_emu31 __user * statbuf); |
| 213 | long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * statbuf); | 213 | long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * statbuf); |
| 214 | long sys32_fstatat64(unsigned int dfd, char __user *filename, | 214 | long sys32_fstatat64(unsigned int dfd, const char __user *filename, |
| 215 | struct stat64_emu31 __user* statbuf, int flag); | 215 | struct stat64_emu31 __user* statbuf, int flag); |
| 216 | unsigned long old32_mmap(struct mmap_arg_struct_emu31 __user *arg); | 216 | unsigned long old32_mmap(struct mmap_arg_struct_emu31 __user *arg); |
| 217 | long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg); | 217 | long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg); |
| 218 | long sys32_read(unsigned int fd, char __user * buf, size_t count); | 218 | long sys32_read(unsigned int fd, char __user * buf, size_t count); |
| 219 | long sys32_write(unsigned int fd, char __user * buf, size_t count); | 219 | long sys32_write(unsigned int fd, const char __user * buf, size_t count); |
| 220 | long sys32_fadvise64(int fd, loff_t offset, size_t len, int advise); | 220 | long sys32_fadvise64(int fd, loff_t offset, size_t len, int advise); |
| 221 | long sys32_fadvise64_64(struct fadvise64_64_args __user *args); | 221 | long sys32_fadvise64_64(struct fadvise64_64_args __user *args); |
| 222 | long sys32_sigaction(int sig, const struct old_sigaction32 __user *act, | 222 | long sys32_sigaction(int sig, const struct old_sigaction32 __user *act, |
diff --git a/arch/s390/kernel/entry.h b/arch/s390/kernel/entry.h index 5bb1e6b5db26..403fb430a896 100644 --- a/arch/s390/kernel/entry.h +++ b/arch/s390/kernel/entry.h | |||
| @@ -42,7 +42,7 @@ long sys_clone(unsigned long newsp, unsigned long clone_flags, | |||
| 42 | int __user *parent_tidptr, int __user *child_tidptr); | 42 | int __user *parent_tidptr, int __user *child_tidptr); |
| 43 | long sys_vfork(void); | 43 | long sys_vfork(void); |
| 44 | void execve_tail(void); | 44 | void execve_tail(void); |
| 45 | long sys_execve(char __user *name, char __user * __user *argv, | 45 | long sys_execve(const char __user *name, char __user * __user *argv, |
| 46 | char __user * __user *envp); | 46 | char __user * __user *envp); |
| 47 | long sys_sigsuspend(int history0, int history1, old_sigset_t mask); | 47 | long sys_sigsuspend(int history0, int history1, old_sigset_t mask); |
| 48 | long sys_sigaction(int sig, const struct old_sigaction __user *act, | 48 | long sys_sigaction(int sig, const struct old_sigaction __user *act, |
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 1039fdea15b5..7eafaf2662b9 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
| @@ -267,7 +267,7 @@ asmlinkage void execve_tail(void) | |||
| 267 | /* | 267 | /* |
| 268 | * sys_execve() executes a new program. | 268 | * sys_execve() executes a new program. |
| 269 | */ | 269 | */ |
| 270 | SYSCALL_DEFINE3(execve, char __user *, name, char __user * __user *, argv, | 270 | SYSCALL_DEFINE3(execve, const char __user *, name, char __user * __user *, argv, |
| 271 | char __user * __user *, envp) | 271 | char __user * __user *, envp) |
| 272 | { | 272 | { |
| 273 | struct pt_regs *regs = task_pt_regs(current); | 273 | struct pt_regs *regs = task_pt_regs(current); |
diff --git a/arch/sh/include/asm/syscalls_32.h b/arch/sh/include/asm/syscalls_32.h index 8b30200305c3..be201fdc97aa 100644 --- a/arch/sh/include/asm/syscalls_32.h +++ b/arch/sh/include/asm/syscalls_32.h | |||
| @@ -19,7 +19,7 @@ asmlinkage int sys_clone(unsigned long clone_flags, unsigned long newsp, | |||
| 19 | asmlinkage int sys_vfork(unsigned long r4, unsigned long r5, | 19 | asmlinkage int sys_vfork(unsigned long r4, unsigned long r5, |
| 20 | unsigned long r6, unsigned long r7, | 20 | unsigned long r6, unsigned long r7, |
| 21 | struct pt_regs __regs); | 21 | struct pt_regs __regs); |
| 22 | asmlinkage int sys_execve(char __user *ufilename, char __user * __user *uargv, | 22 | asmlinkage int sys_execve(const char __user *ufilename, char __user * __user *uargv, |
| 23 | char __user * __user *uenvp, unsigned long r7, | 23 | char __user * __user *uenvp, unsigned long r7, |
| 24 | struct pt_regs __regs); | 24 | struct pt_regs __regs); |
| 25 | asmlinkage int sys_sigsuspend(old_sigset_t mask, unsigned long r5, | 25 | asmlinkage int sys_sigsuspend(old_sigset_t mask, unsigned long r5, |
diff --git a/arch/sh/include/asm/syscalls_64.h b/arch/sh/include/asm/syscalls_64.h index 751fd8811364..ee519f41d950 100644 --- a/arch/sh/include/asm/syscalls_64.h +++ b/arch/sh/include/asm/syscalls_64.h | |||
| @@ -21,7 +21,7 @@ asmlinkage int sys_vfork(unsigned long r2, unsigned long r3, | |||
| 21 | unsigned long r4, unsigned long r5, | 21 | unsigned long r4, unsigned long r5, |
| 22 | unsigned long r6, unsigned long r7, | 22 | unsigned long r6, unsigned long r7, |
| 23 | struct pt_regs *pregs); | 23 | struct pt_regs *pregs); |
| 24 | asmlinkage int sys_execve(char *ufilename, char **uargv, | 24 | asmlinkage int sys_execve(const char *ufilename, char **uargv, |
| 25 | char **uenvp, unsigned long r5, | 25 | char **uenvp, unsigned long r5, |
| 26 | unsigned long r6, unsigned long r7, | 26 | unsigned long r6, unsigned long r7, |
| 27 | struct pt_regs *pregs); | 27 | struct pt_regs *pregs); |
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c index d4ca6480e355..68d128d651b3 100644 --- a/arch/sh/kernel/process_64.c +++ b/arch/sh/kernel/process_64.c | |||
| @@ -483,7 +483,7 @@ asmlinkage int sys_vfork(unsigned long r2, unsigned long r3, | |||
| 483 | /* | 483 | /* |
| 484 | * sys_execve() executes a new program. | 484 | * sys_execve() executes a new program. |
| 485 | */ | 485 | */ |
| 486 | asmlinkage int sys_execve(char *ufilename, char **uargv, | 486 | asmlinkage int sys_execve(const char *ufilename, char **uargv, |
| 487 | char **uenvp, unsigned long r5, | 487 | char **uenvp, unsigned long r5, |
| 488 | unsigned long r6, unsigned long r7, | 488 | unsigned long r6, unsigned long r7, |
| 489 | struct pt_regs *pregs) | 489 | struct pt_regs *pregs) |
diff --git a/arch/sparc/kernel/sys_sparc32.c b/arch/sparc/kernel/sys_sparc32.c index c0ca87553e1c..e6375a750d9a 100644 --- a/arch/sparc/kernel/sys_sparc32.c +++ b/arch/sparc/kernel/sys_sparc32.c | |||
| @@ -162,7 +162,7 @@ static int cp_compat_stat64(struct kstat *stat, | |||
| 162 | return err; | 162 | return err; |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | asmlinkage long compat_sys_stat64(char __user * filename, | 165 | asmlinkage long compat_sys_stat64(const char __user * filename, |
| 166 | struct compat_stat64 __user *statbuf) | 166 | struct compat_stat64 __user *statbuf) |
| 167 | { | 167 | { |
| 168 | struct kstat stat; | 168 | struct kstat stat; |
| @@ -173,7 +173,7 @@ asmlinkage long compat_sys_stat64(char __user * filename, | |||
| 173 | return error; | 173 | return error; |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | asmlinkage long compat_sys_lstat64(char __user * filename, | 176 | asmlinkage long compat_sys_lstat64(const char __user * filename, |
| 177 | struct compat_stat64 __user *statbuf) | 177 | struct compat_stat64 __user *statbuf) |
| 178 | { | 178 | { |
| 179 | struct kstat stat; | 179 | struct kstat stat; |
| @@ -195,7 +195,8 @@ asmlinkage long compat_sys_fstat64(unsigned int fd, | |||
| 195 | return error; | 195 | return error; |
| 196 | } | 196 | } |
| 197 | 197 | ||
| 198 | asmlinkage long compat_sys_fstatat64(unsigned int dfd, char __user *filename, | 198 | asmlinkage long compat_sys_fstatat64(unsigned int dfd, |
| 199 | const char __user *filename, | ||
| 199 | struct compat_stat64 __user * statbuf, int flag) | 200 | struct compat_stat64 __user * statbuf, int flag) |
| 200 | { | 201 | { |
| 201 | struct kstat stat; | 202 | struct kstat stat; |
diff --git a/arch/um/kernel/exec.c b/arch/um/kernel/exec.c index 97974c1bdd12..59b20d93b6d4 100644 --- a/arch/um/kernel/exec.c +++ b/arch/um/kernel/exec.c | |||
| @@ -44,7 +44,7 @@ void start_thread(struct pt_regs *regs, unsigned long eip, unsigned long esp) | |||
| 44 | PT_REGS_SP(regs) = esp; | 44 | PT_REGS_SP(regs) = esp; |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | static long execve1(char *file, char __user * __user *argv, | 47 | static long execve1(const char *file, char __user * __user *argv, |
| 48 | char __user *__user *env) | 48 | char __user *__user *env) |
| 49 | { | 49 | { |
| 50 | long error; | 50 | long error; |
| @@ -61,7 +61,7 @@ static long execve1(char *file, char __user * __user *argv, | |||
| 61 | return error; | 61 | return error; |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | long um_execve(char *file, char __user *__user *argv, char __user *__user *env) | 64 | long um_execve(const char *file, char __user *__user *argv, char __user *__user *env) |
| 65 | { | 65 | { |
| 66 | long err; | 66 | long err; |
| 67 | 67 | ||
| @@ -71,7 +71,7 @@ long um_execve(char *file, char __user *__user *argv, char __user *__user *env) | |||
| 71 | return err; | 71 | return err; |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | long sys_execve(char __user *file, char __user *__user *argv, | 74 | long sys_execve(const char __user *file, char __user *__user *argv, |
| 75 | char __user *__user *env) | 75 | char __user *__user *env) |
| 76 | { | 76 | { |
| 77 | long error; | 77 | long error; |
diff --git a/arch/um/kernel/internal.h b/arch/um/kernel/internal.h index 3bda43c7a786..1303a105fe91 100644 --- a/arch/um/kernel/internal.h +++ b/arch/um/kernel/internal.h | |||
| @@ -1 +1 @@ | |||
| extern long um_execve(char *file, char __user *__user *argv, char __user *__user *env); | extern long um_execve(const char *file, char __user *__user *argv, char __user *__user *env); | ||
diff --git a/arch/um/kernel/syscall.c b/arch/um/kernel/syscall.c index 4393173923f5..7427c0b1930c 100644 --- a/arch/um/kernel/syscall.c +++ b/arch/um/kernel/syscall.c | |||
| @@ -58,7 +58,7 @@ int kernel_execve(const char *filename, char *const argv[], char *const envp[]) | |||
| 58 | 58 | ||
| 59 | fs = get_fs(); | 59 | fs = get_fs(); |
| 60 | set_fs(KERNEL_DS); | 60 | set_fs(KERNEL_DS); |
| 61 | ret = um_execve((char *)filename, (char __user *__user *)argv, | 61 | ret = um_execve(filename, (char __user *__user *)argv, |
| 62 | (char __user *__user *) envp); | 62 | (char __user *__user *) envp); |
| 63 | set_fs(fs); | 63 | set_fs(fs); |
| 64 | 64 | ||
diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c index 3d093311d5e2..849813f398e7 100644 --- a/arch/x86/ia32/sys_ia32.c +++ b/arch/x86/ia32/sys_ia32.c | |||
| @@ -51,7 +51,7 @@ | |||
| 51 | #define AA(__x) ((unsigned long)(__x)) | 51 | #define AA(__x) ((unsigned long)(__x)) |
| 52 | 52 | ||
| 53 | 53 | ||
| 54 | asmlinkage long sys32_truncate64(char __user *filename, | 54 | asmlinkage long sys32_truncate64(const char __user *filename, |
| 55 | unsigned long offset_low, | 55 | unsigned long offset_low, |
| 56 | unsigned long offset_high) | 56 | unsigned long offset_high) |
| 57 | { | 57 | { |
| @@ -96,7 +96,7 @@ static int cp_stat64(struct stat64 __user *ubuf, struct kstat *stat) | |||
| 96 | return 0; | 96 | return 0; |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | asmlinkage long sys32_stat64(char __user *filename, | 99 | asmlinkage long sys32_stat64(const char __user *filename, |
| 100 | struct stat64 __user *statbuf) | 100 | struct stat64 __user *statbuf) |
| 101 | { | 101 | { |
| 102 | struct kstat stat; | 102 | struct kstat stat; |
| @@ -107,7 +107,7 @@ asmlinkage long sys32_stat64(char __user *filename, | |||
| 107 | return ret; | 107 | return ret; |
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | asmlinkage long sys32_lstat64(char __user *filename, | 110 | asmlinkage long sys32_lstat64(const char __user *filename, |
| 111 | struct stat64 __user *statbuf) | 111 | struct stat64 __user *statbuf) |
| 112 | { | 112 | { |
| 113 | struct kstat stat; | 113 | struct kstat stat; |
| @@ -126,7 +126,7 @@ asmlinkage long sys32_fstat64(unsigned int fd, struct stat64 __user *statbuf) | |||
| 126 | return ret; | 126 | return ret; |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | asmlinkage long sys32_fstatat(unsigned int dfd, char __user *filename, | 129 | asmlinkage long sys32_fstatat(unsigned int dfd, const char __user *filename, |
| 130 | struct stat64 __user *statbuf, int flag) | 130 | struct stat64 __user *statbuf, int flag) |
| 131 | { | 131 | { |
| 132 | struct kstat stat; | 132 | struct kstat stat; |
| @@ -408,8 +408,8 @@ asmlinkage long sys32_pread(unsigned int fd, char __user *ubuf, u32 count, | |||
| 408 | ((loff_t)AA(poshi) << 32) | AA(poslo)); | 408 | ((loff_t)AA(poshi) << 32) | AA(poslo)); |
| 409 | } | 409 | } |
| 410 | 410 | ||
| 411 | asmlinkage long sys32_pwrite(unsigned int fd, char __user *ubuf, u32 count, | 411 | asmlinkage long sys32_pwrite(unsigned int fd, const char __user *ubuf, |
| 412 | u32 poslo, u32 poshi) | 412 | u32 count, u32 poslo, u32 poshi) |
| 413 | { | 413 | { |
| 414 | return sys_pwrite64(fd, ubuf, count, | 414 | return sys_pwrite64(fd, ubuf, count, |
| 415 | ((loff_t)AA(poshi) << 32) | AA(poslo)); | 415 | ((loff_t)AA(poshi) << 32) | AA(poslo)); |
| @@ -449,7 +449,7 @@ asmlinkage long sys32_sendfile(int out_fd, int in_fd, | |||
| 449 | return ret; | 449 | return ret; |
| 450 | } | 450 | } |
| 451 | 451 | ||
| 452 | asmlinkage long sys32_execve(char __user *name, compat_uptr_t __user *argv, | 452 | asmlinkage long sys32_execve(const char __user *name, compat_uptr_t __user *argv, |
| 453 | compat_uptr_t __user *envp, struct pt_regs *regs) | 453 | compat_uptr_t __user *envp, struct pt_regs *regs) |
| 454 | { | 454 | { |
| 455 | long error; | 455 | long error; |
diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h index cf4e2e381cba..cb238526a9f1 100644 --- a/arch/x86/include/asm/sys_ia32.h +++ b/arch/x86/include/asm/sys_ia32.h | |||
| @@ -18,13 +18,13 @@ | |||
| 18 | #include <asm/ia32.h> | 18 | #include <asm/ia32.h> |
| 19 | 19 | ||
| 20 | /* ia32/sys_ia32.c */ | 20 | /* ia32/sys_ia32.c */ |
| 21 | asmlinkage long sys32_truncate64(char __user *, unsigned long, unsigned long); | 21 | asmlinkage long sys32_truncate64(const char __user *, unsigned long, unsigned long); |
| 22 | asmlinkage long sys32_ftruncate64(unsigned int, unsigned long, unsigned long); | 22 | asmlinkage long sys32_ftruncate64(unsigned int, unsigned long, unsigned long); |
| 23 | 23 | ||
| 24 | asmlinkage long sys32_stat64(char __user *, struct stat64 __user *); | 24 | asmlinkage long sys32_stat64(const char __user *, struct stat64 __user *); |
| 25 | asmlinkage long sys32_lstat64(char __user *, struct stat64 __user *); | 25 | asmlinkage long sys32_lstat64(const char __user *, struct stat64 __user *); |
| 26 | asmlinkage long sys32_fstat64(unsigned int, struct stat64 __user *); | 26 | asmlinkage long sys32_fstat64(unsigned int, struct stat64 __user *); |
| 27 | asmlinkage long sys32_fstatat(unsigned int, char __user *, | 27 | asmlinkage long sys32_fstatat(unsigned int, const char __user *, |
| 28 | struct stat64 __user *, int); | 28 | struct stat64 __user *, int); |
| 29 | struct mmap_arg_struct32; | 29 | struct mmap_arg_struct32; |
| 30 | asmlinkage long sys32_mmap(struct mmap_arg_struct32 __user *); | 30 | asmlinkage long sys32_mmap(struct mmap_arg_struct32 __user *); |
| @@ -49,12 +49,12 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *, compat_size_t); | |||
| 49 | asmlinkage long sys32_rt_sigqueueinfo(int, int, compat_siginfo_t __user *); | 49 | asmlinkage long sys32_rt_sigqueueinfo(int, int, compat_siginfo_t __user *); |
| 50 | 50 | ||
| 51 | asmlinkage long sys32_pread(unsigned int, char __user *, u32, u32, u32); | 51 | asmlinkage long sys32_pread(unsigned int, char __user *, u32, u32, u32); |
| 52 | asmlinkage long sys32_pwrite(unsigned int, char __user *, u32, u32, u32); | 52 | asmlinkage long sys32_pwrite(unsigned int, const char __user *, u32, u32, u32); |
| 53 | 53 | ||
| 54 | asmlinkage long sys32_personality(unsigned long); | 54 | asmlinkage long sys32_personality(unsigned long); |
| 55 | asmlinkage long sys32_sendfile(int, int, compat_off_t __user *, s32); | 55 | asmlinkage long sys32_sendfile(int, int, compat_off_t __user *, s32); |
| 56 | 56 | ||
| 57 | asmlinkage long sys32_execve(char __user *, compat_uptr_t __user *, | 57 | asmlinkage long sys32_execve(const char __user *, compat_uptr_t __user *, |
| 58 | compat_uptr_t __user *, struct pt_regs *); | 58 | compat_uptr_t __user *, struct pt_regs *); |
| 59 | asmlinkage long sys32_clone(unsigned int, unsigned int, struct pt_regs *); | 59 | asmlinkage long sys32_clone(unsigned int, unsigned int, struct pt_regs *); |
| 60 | 60 | ||
diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h index 5c044b43e9a7..feb2ff9bfc2d 100644 --- a/arch/x86/include/asm/syscalls.h +++ b/arch/x86/include/asm/syscalls.h | |||
| @@ -23,7 +23,7 @@ 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(char __user *, char __user * __user *, | 26 | long sys_execve(const char __user *, char __user * __user *, |
| 27 | char __user * __user *, struct pt_regs *); | 27 | char __user * __user *, struct pt_regs *); |
| 28 | long sys_clone(unsigned long, unsigned long, void __user *, | 28 | long sys_clone(unsigned long, unsigned long, void __user *, |
| 29 | void __user *, struct pt_regs *); | 29 | void __user *, struct pt_regs *); |
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S index c5ea5cdbe7b3..17be5ec7cbba 100644 --- a/arch/x86/kernel/entry_64.S +++ b/arch/x86/kernel/entry_64.S | |||
| @@ -1185,13 +1185,13 @@ END(kernel_thread_helper) | |||
| 1185 | * execve(). This function needs to use IRET, not SYSRET, to set up all state properly. | 1185 | * execve(). This function needs to use IRET, not SYSRET, to set up all state properly. |
| 1186 | * | 1186 | * |
| 1187 | * C extern interface: | 1187 | * C extern interface: |
| 1188 | * extern long execve(char *name, char **argv, char **envp) | 1188 | * extern long execve(const char *name, char **argv, char **envp) |
| 1189 | * | 1189 | * |
| 1190 | * asm input arguments: | 1190 | * asm input arguments: |
| 1191 | * rdi: name, rsi: argv, rdx: envp | 1191 | * rdi: name, rsi: argv, rdx: envp |
| 1192 | * | 1192 | * |
| 1193 | * We want to fallback into: | 1193 | * We want to fallback into: |
| 1194 | * extern long sys_execve(char *name, char **argv,char **envp, struct pt_regs *regs) | 1194 | * extern long sys_execve(const char *name, char **argv,char **envp, struct pt_regs *regs) |
| 1195 | * | 1195 | * |
| 1196 | * do_sys_execve asm fallback arguments: | 1196 | * do_sys_execve asm fallback arguments: |
| 1197 | * rdi: name, rsi: argv, rdx: envp, rcx: fake frame on the stack | 1197 | * rdi: name, rsi: argv, rdx: envp, rcx: fake frame on the stack |
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index d401f1d2d06e..64ecaf0af9af 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c | |||
| @@ -301,7 +301,7 @@ 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(char __user *name, char __user * __user *argv, | 304 | long sys_execve(const char __user *name, char __user * __user *argv, |
| 305 | char __user * __user *envp, struct pt_regs *regs) | 305 | char __user * __user *envp, struct pt_regs *regs) |
| 306 | { | 306 | { |
| 307 | long error; | 307 | long error; |
diff --git a/arch/xtensa/kernel/process.c b/arch/xtensa/kernel/process.c index f167e0f5e05e..7c2f38f68ebb 100644 --- a/arch/xtensa/kernel/process.c +++ b/arch/xtensa/kernel/process.c | |||
| @@ -318,7 +318,7 @@ long xtensa_clone(unsigned long clone_flags, unsigned long newsp, | |||
| 318 | */ | 318 | */ |
| 319 | 319 | ||
| 320 | asmlinkage | 320 | asmlinkage |
| 321 | long xtensa_execve(char __user *name, char __user * __user *argv, | 321 | long xtensa_execve(const char __user *name, char __user * __user *argv, |
| 322 | char __user * __user *envp, | 322 | char __user * __user *envp, |
| 323 | long a3, long a4, long a5, | 323 | long a3, long a4, long a5, |
| 324 | struct pt_regs *regs) | 324 | struct pt_regs *regs) |
diff --git a/fs/compat.c b/fs/compat.c index e6d5d70cf3cf..718c7062aec1 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
| @@ -77,7 +77,8 @@ int compat_printk(const char *fmt, ...) | |||
| 77 | * Not all architectures have sys_utime, so implement this in terms | 77 | * Not all architectures have sys_utime, so implement this in terms |
| 78 | * of sys_utimes. | 78 | * of sys_utimes. |
| 79 | */ | 79 | */ |
| 80 | asmlinkage long compat_sys_utime(char __user *filename, struct compat_utimbuf __user *t) | 80 | asmlinkage long compat_sys_utime(const char __user *filename, |
| 81 | struct compat_utimbuf __user *t) | ||
| 81 | { | 82 | { |
| 82 | struct timespec tv[2]; | 83 | struct timespec tv[2]; |
| 83 | 84 | ||
| @@ -91,7 +92,7 @@ asmlinkage long compat_sys_utime(char __user *filename, struct compat_utimbuf __ | |||
| 91 | return do_utimes(AT_FDCWD, filename, t ? tv : NULL, 0); | 92 | return do_utimes(AT_FDCWD, filename, t ? tv : NULL, 0); |
| 92 | } | 93 | } |
| 93 | 94 | ||
| 94 | asmlinkage long compat_sys_utimensat(unsigned int dfd, char __user *filename, struct compat_timespec __user *t, int flags) | 95 | asmlinkage long compat_sys_utimensat(unsigned int dfd, const char __user *filename, struct compat_timespec __user *t, int flags) |
| 95 | { | 96 | { |
| 96 | struct timespec tv[2]; | 97 | struct timespec tv[2]; |
| 97 | 98 | ||
| @@ -106,7 +107,7 @@ asmlinkage long compat_sys_utimensat(unsigned int dfd, char __user *filename, st | |||
| 106 | return do_utimes(dfd, filename, t ? tv : NULL, flags); | 107 | return do_utimes(dfd, filename, t ? tv : NULL, flags); |
| 107 | } | 108 | } |
| 108 | 109 | ||
| 109 | asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename, struct compat_timeval __user *t) | 110 | asmlinkage long compat_sys_futimesat(unsigned int dfd, const char __user *filename, struct compat_timeval __user *t) |
| 110 | { | 111 | { |
| 111 | struct timespec tv[2]; | 112 | struct timespec tv[2]; |
| 112 | 113 | ||
| @@ -125,7 +126,7 @@ asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename, st | |||
| 125 | return do_utimes(dfd, filename, t ? tv : NULL, 0); | 126 | return do_utimes(dfd, filename, t ? tv : NULL, 0); |
| 126 | } | 127 | } |
| 127 | 128 | ||
| 128 | asmlinkage long compat_sys_utimes(char __user *filename, struct compat_timeval __user *t) | 129 | asmlinkage long compat_sys_utimes(const char __user *filename, struct compat_timeval __user *t) |
| 129 | { | 130 | { |
| 130 | return compat_sys_futimesat(AT_FDCWD, filename, t); | 131 | return compat_sys_futimesat(AT_FDCWD, filename, t); |
| 131 | } | 132 | } |
| @@ -169,7 +170,7 @@ static int cp_compat_stat(struct kstat *stat, struct compat_stat __user *ubuf) | |||
| 169 | return err; | 170 | return err; |
| 170 | } | 171 | } |
| 171 | 172 | ||
| 172 | asmlinkage long compat_sys_newstat(char __user * filename, | 173 | asmlinkage long compat_sys_newstat(const char __user * filename, |
| 173 | struct compat_stat __user *statbuf) | 174 | struct compat_stat __user *statbuf) |
| 174 | { | 175 | { |
| 175 | struct kstat stat; | 176 | struct kstat stat; |
| @@ -181,7 +182,7 @@ asmlinkage long compat_sys_newstat(char __user * filename, | |||
| 181 | return cp_compat_stat(&stat, statbuf); | 182 | return cp_compat_stat(&stat, statbuf); |
| 182 | } | 183 | } |
| 183 | 184 | ||
| 184 | asmlinkage long compat_sys_newlstat(char __user * filename, | 185 | asmlinkage long compat_sys_newlstat(const char __user * filename, |
| 185 | struct compat_stat __user *statbuf) | 186 | struct compat_stat __user *statbuf) |
| 186 | { | 187 | { |
| 187 | struct kstat stat; | 188 | struct kstat stat; |
| @@ -194,7 +195,8 @@ asmlinkage long compat_sys_newlstat(char __user * filename, | |||
| 194 | } | 195 | } |
| 195 | 196 | ||
| 196 | #ifndef __ARCH_WANT_STAT64 | 197 | #ifndef __ARCH_WANT_STAT64 |
| 197 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user *filename, | 198 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, |
| 199 | const char __user *filename, | ||
| 198 | struct compat_stat __user *statbuf, int flag) | 200 | struct compat_stat __user *statbuf, int flag) |
| 199 | { | 201 | { |
| 200 | struct kstat stat; | 202 | struct kstat stat; |
| @@ -837,9 +839,10 @@ static int do_nfs4_super_data_conv(void *raw_data) | |||
| 837 | #define NCPFS_NAME "ncpfs" | 839 | #define NCPFS_NAME "ncpfs" |
| 838 | #define NFS4_NAME "nfs4" | 840 | #define NFS4_NAME "nfs4" |
| 839 | 841 | ||
| 840 | asmlinkage long compat_sys_mount(char __user * dev_name, char __user * dir_name, | 842 | asmlinkage long compat_sys_mount(const char __user * dev_name, |
| 841 | char __user * type, unsigned long flags, | 843 | const char __user * dir_name, |
| 842 | void __user * data) | 844 | const char __user * type, unsigned long flags, |
| 845 | const void __user * data) | ||
| 843 | { | 846 | { |
| 844 | char *kernel_type; | 847 | char *kernel_type; |
| 845 | unsigned long data_page; | 848 | unsigned long data_page; |
| @@ -68,7 +68,8 @@ int vfs_fstat(unsigned int fd, struct kstat *stat) | |||
| 68 | } | 68 | } |
| 69 | EXPORT_SYMBOL(vfs_fstat); | 69 | EXPORT_SYMBOL(vfs_fstat); |
| 70 | 70 | ||
| 71 | int vfs_fstatat(int dfd, char __user *filename, struct kstat *stat, int flag) | 71 | int vfs_fstatat(int dfd, const char __user *filename, struct kstat *stat, |
| 72 | int flag) | ||
| 72 | { | 73 | { |
| 73 | struct path path; | 74 | struct path path; |
| 74 | int error = -EINVAL; | 75 | int error = -EINVAL; |
| @@ -91,13 +92,13 @@ out: | |||
| 91 | } | 92 | } |
| 92 | EXPORT_SYMBOL(vfs_fstatat); | 93 | EXPORT_SYMBOL(vfs_fstatat); |
| 93 | 94 | ||
| 94 | int vfs_stat(char __user *name, struct kstat *stat) | 95 | int vfs_stat(const char __user *name, struct kstat *stat) |
| 95 | { | 96 | { |
| 96 | return vfs_fstatat(AT_FDCWD, name, stat, 0); | 97 | return vfs_fstatat(AT_FDCWD, name, stat, 0); |
| 97 | } | 98 | } |
| 98 | EXPORT_SYMBOL(vfs_stat); | 99 | EXPORT_SYMBOL(vfs_stat); |
| 99 | 100 | ||
| 100 | int vfs_lstat(char __user *name, struct kstat *stat) | 101 | int vfs_lstat(const char __user *name, struct kstat *stat) |
| 101 | { | 102 | { |
| 102 | return vfs_fstatat(AT_FDCWD, name, stat, AT_SYMLINK_NOFOLLOW); | 103 | return vfs_fstatat(AT_FDCWD, name, stat, AT_SYMLINK_NOFOLLOW); |
| 103 | } | 104 | } |
| @@ -147,7 +148,8 @@ static int cp_old_stat(struct kstat *stat, struct __old_kernel_stat __user * sta | |||
| 147 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; | 148 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; |
| 148 | } | 149 | } |
| 149 | 150 | ||
| 150 | SYSCALL_DEFINE2(stat, char __user *, filename, struct __old_kernel_stat __user *, statbuf) | 151 | SYSCALL_DEFINE2(stat, const char __user *, filename, |
| 152 | struct __old_kernel_stat __user *, statbuf) | ||
| 151 | { | 153 | { |
| 152 | struct kstat stat; | 154 | struct kstat stat; |
| 153 | int error; | 155 | int error; |
| @@ -159,7 +161,8 @@ SYSCALL_DEFINE2(stat, char __user *, filename, struct __old_kernel_stat __user * | |||
| 159 | return cp_old_stat(&stat, statbuf); | 161 | return cp_old_stat(&stat, statbuf); |
| 160 | } | 162 | } |
| 161 | 163 | ||
| 162 | SYSCALL_DEFINE2(lstat, char __user *, filename, struct __old_kernel_stat __user *, statbuf) | 164 | SYSCALL_DEFINE2(lstat, const char __user *, filename, |
| 165 | struct __old_kernel_stat __user *, statbuf) | ||
| 163 | { | 166 | { |
| 164 | struct kstat stat; | 167 | struct kstat stat; |
| 165 | int error; | 168 | int error; |
| @@ -234,7 +237,8 @@ static int cp_new_stat(struct kstat *stat, struct stat __user *statbuf) | |||
| 234 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; | 237 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; |
| 235 | } | 238 | } |
| 236 | 239 | ||
| 237 | SYSCALL_DEFINE2(newstat, char __user *, filename, struct stat __user *, statbuf) | 240 | SYSCALL_DEFINE2(newstat, const char __user *, filename, |
| 241 | struct stat __user *, statbuf) | ||
| 238 | { | 242 | { |
| 239 | struct kstat stat; | 243 | struct kstat stat; |
| 240 | int error = vfs_stat(filename, &stat); | 244 | int error = vfs_stat(filename, &stat); |
| @@ -244,7 +248,8 @@ SYSCALL_DEFINE2(newstat, char __user *, filename, struct stat __user *, statbuf) | |||
| 244 | return cp_new_stat(&stat, statbuf); | 248 | return cp_new_stat(&stat, statbuf); |
| 245 | } | 249 | } |
| 246 | 250 | ||
| 247 | SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf) | 251 | SYSCALL_DEFINE2(newlstat, const char __user *, filename, |
| 252 | struct stat __user *, statbuf) | ||
| 248 | { | 253 | { |
| 249 | struct kstat stat; | 254 | struct kstat stat; |
| 250 | int error; | 255 | int error; |
| @@ -257,7 +262,7 @@ SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf | |||
| 257 | } | 262 | } |
| 258 | 263 | ||
| 259 | #if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT) | 264 | #if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT) |
| 260 | SYSCALL_DEFINE4(newfstatat, int, dfd, char __user *, filename, | 265 | SYSCALL_DEFINE4(newfstatat, int, dfd, const char __user *, filename, |
| 261 | struct stat __user *, statbuf, int, flag) | 266 | struct stat __user *, statbuf, int, flag) |
| 262 | { | 267 | { |
| 263 | struct kstat stat; | 268 | struct kstat stat; |
| @@ -355,7 +360,8 @@ static long cp_new_stat64(struct kstat *stat, struct stat64 __user *statbuf) | |||
| 355 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; | 360 | return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0; |
| 356 | } | 361 | } |
| 357 | 362 | ||
| 358 | SYSCALL_DEFINE2(stat64, char __user *, filename, struct stat64 __user *, statbuf) | 363 | SYSCALL_DEFINE2(stat64, const char __user *, filename, |
| 364 | struct stat64 __user *, statbuf) | ||
| 359 | { | 365 | { |
| 360 | struct kstat stat; | 366 | struct kstat stat; |
| 361 | int error = vfs_stat(filename, &stat); | 367 | int error = vfs_stat(filename, &stat); |
| @@ -366,7 +372,8 @@ SYSCALL_DEFINE2(stat64, char __user *, filename, struct stat64 __user *, statbuf | |||
| 366 | return error; | 372 | return error; |
| 367 | } | 373 | } |
| 368 | 374 | ||
| 369 | SYSCALL_DEFINE2(lstat64, char __user *, filename, struct stat64 __user *, statbuf) | 375 | SYSCALL_DEFINE2(lstat64, const char __user *, filename, |
| 376 | struct stat64 __user *, statbuf) | ||
| 370 | { | 377 | { |
| 371 | struct kstat stat; | 378 | struct kstat stat; |
| 372 | int error = vfs_lstat(filename, &stat); | 379 | int error = vfs_lstat(filename, &stat); |
| @@ -388,7 +395,7 @@ SYSCALL_DEFINE2(fstat64, unsigned long, fd, struct stat64 __user *, statbuf) | |||
| 388 | return error; | 395 | return error; |
| 389 | } | 396 | } |
| 390 | 397 | ||
| 391 | SYSCALL_DEFINE4(fstatat64, int, dfd, char __user *, filename, | 398 | SYSCALL_DEFINE4(fstatat64, int, dfd, const char __user *, filename, |
| 392 | struct stat64 __user *, statbuf, int, flag) | 399 | struct stat64 __user *, statbuf, int, flag) |
| 393 | { | 400 | { |
| 394 | struct kstat stat; | 401 | struct kstat stat; |
diff --git a/fs/utimes.c b/fs/utimes.c index e4c75db5d373..179b58690657 100644 --- a/fs/utimes.c +++ b/fs/utimes.c | |||
| @@ -126,7 +126,8 @@ out: | |||
| 126 | * must be owner or have write permission. | 126 | * must be owner or have write permission. |
| 127 | * Else, update from *times, must be owner or super user. | 127 | * Else, update from *times, must be owner or super user. |
| 128 | */ | 128 | */ |
| 129 | long do_utimes(int dfd, char __user *filename, struct timespec *times, int flags) | 129 | long do_utimes(int dfd, const char __user *filename, struct timespec *times, |
| 130 | int flags) | ||
| 130 | { | 131 | { |
| 131 | int error = -EINVAL; | 132 | int error = -EINVAL; |
| 132 | 133 | ||
| @@ -170,7 +171,7 @@ out: | |||
| 170 | return error; | 171 | return error; |
| 171 | } | 172 | } |
| 172 | 173 | ||
| 173 | SYSCALL_DEFINE4(utimensat, int, dfd, char __user *, filename, | 174 | SYSCALL_DEFINE4(utimensat, int, dfd, const char __user *, filename, |
| 174 | struct timespec __user *, utimes, int, flags) | 175 | struct timespec __user *, utimes, int, flags) |
| 175 | { | 176 | { |
| 176 | struct timespec tstimes[2]; | 177 | struct timespec tstimes[2]; |
| @@ -188,7 +189,7 @@ SYSCALL_DEFINE4(utimensat, int, dfd, char __user *, filename, | |||
| 188 | return do_utimes(dfd, filename, utimes ? tstimes : NULL, flags); | 189 | return do_utimes(dfd, filename, utimes ? tstimes : NULL, flags); |
| 189 | } | 190 | } |
| 190 | 191 | ||
| 191 | SYSCALL_DEFINE3(futimesat, int, dfd, char __user *, filename, | 192 | SYSCALL_DEFINE3(futimesat, int, dfd, const char __user *, filename, |
| 192 | struct timeval __user *, utimes) | 193 | struct timeval __user *, utimes) |
| 193 | { | 194 | { |
| 194 | struct timeval times[2]; | 195 | struct timeval times[2]; |
diff --git a/include/linux/compat.h b/include/linux/compat.h index 168f7daa7bde..9ddc8780e8db 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -331,7 +331,7 @@ asmlinkage long compat_sys_epoll_pwait(int epfd, | |||
| 331 | const compat_sigset_t __user *sigmask, | 331 | const compat_sigset_t __user *sigmask, |
| 332 | compat_size_t sigsetsize); | 332 | compat_size_t sigsetsize); |
| 333 | 333 | ||
| 334 | asmlinkage long compat_sys_utimensat(unsigned int dfd, char __user *filename, | 334 | asmlinkage long compat_sys_utimensat(unsigned int dfd, const char __user *filename, |
| 335 | struct compat_timespec __user *t, int flags); | 335 | struct compat_timespec __user *t, int flags); |
| 336 | 336 | ||
| 337 | asmlinkage long compat_sys_signalfd(int ufd, | 337 | asmlinkage long compat_sys_signalfd(int ufd, |
| @@ -348,9 +348,9 @@ asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page, | |||
| 348 | const int __user *nodes, | 348 | const int __user *nodes, |
| 349 | int __user *status, | 349 | int __user *status, |
| 350 | int flags); | 350 | int flags); |
| 351 | asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename, | 351 | asmlinkage long compat_sys_futimesat(unsigned int dfd, const char __user *filename, |
| 352 | struct compat_timeval __user *t); | 352 | struct compat_timeval __user *t); |
| 353 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename, | 353 | asmlinkage long compat_sys_newfstatat(unsigned int dfd, const char __user * filename, |
| 354 | struct compat_stat __user *statbuf, | 354 | struct compat_stat __user *statbuf, |
| 355 | int flag); | 355 | int flag); |
| 356 | asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, | 356 | asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 7a0625e26a39..5f0ca2fbb2a0 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -2320,10 +2320,10 @@ void inode_set_bytes(struct inode *inode, loff_t bytes); | |||
| 2320 | 2320 | ||
| 2321 | extern int vfs_readdir(struct file *, filldir_t, void *); | 2321 | extern int vfs_readdir(struct file *, filldir_t, void *); |
| 2322 | 2322 | ||
| 2323 | extern int vfs_stat(char __user *, struct kstat *); | 2323 | extern int vfs_stat(const char __user *, struct kstat *); |
| 2324 | extern int vfs_lstat(char __user *, struct kstat *); | 2324 | extern int vfs_lstat(const char __user *, struct kstat *); |
| 2325 | extern int vfs_fstat(unsigned int, struct kstat *); | 2325 | extern int vfs_fstat(unsigned int, struct kstat *); |
| 2326 | extern int vfs_fstatat(int , char __user *, struct kstat *, int); | 2326 | extern int vfs_fstatat(int , const char __user *, struct kstat *, int); |
| 2327 | 2327 | ||
| 2328 | extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, | 2328 | extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, |
| 2329 | unsigned long arg); | 2329 | unsigned long arg); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 1b67bd333b5e..6e5d19788634 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -394,7 +394,7 @@ asmlinkage long sys_umount(char __user *name, int flags); | |||
| 394 | asmlinkage long sys_oldumount(char __user *name); | 394 | asmlinkage long sys_oldumount(char __user *name); |
| 395 | asmlinkage long sys_truncate(const char __user *path, long length); | 395 | asmlinkage long sys_truncate(const char __user *path, long length); |
| 396 | asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length); | 396 | asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length); |
| 397 | asmlinkage long sys_stat(char __user *filename, | 397 | asmlinkage long sys_stat(const char __user *filename, |
| 398 | struct __old_kernel_stat __user *statbuf); | 398 | struct __old_kernel_stat __user *statbuf); |
| 399 | asmlinkage long sys_statfs(const char __user * path, | 399 | asmlinkage long sys_statfs(const char __user * path, |
| 400 | struct statfs __user *buf); | 400 | struct statfs __user *buf); |
| @@ -403,21 +403,21 @@ asmlinkage long sys_statfs64(const char __user *path, size_t sz, | |||
| 403 | asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf); | 403 | asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user *buf); |
| 404 | asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz, | 404 | asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz, |
| 405 | struct statfs64 __user *buf); | 405 | struct statfs64 __user *buf); |
| 406 | asmlinkage long sys_lstat(char __user *filename, | 406 | asmlinkage long sys_lstat(const char __user *filename, |
| 407 | struct __old_kernel_stat __user *statbuf); | 407 | struct __old_kernel_stat __user *statbuf); |
| 408 | asmlinkage long sys_fstat(unsigned int fd, | 408 | asmlinkage long sys_fstat(unsigned int fd, |
| 409 | struct __old_kernel_stat __user *statbuf); | 409 | struct __old_kernel_stat __user *statbuf); |
| 410 | asmlinkage long sys_newstat(char __user *filename, | 410 | asmlinkage long sys_newstat(const char __user *filename, |
| 411 | struct stat __user *statbuf); | 411 | struct stat __user *statbuf); |
| 412 | asmlinkage long sys_newlstat(char __user *filename, | 412 | asmlinkage long sys_newlstat(const char __user *filename, |
| 413 | struct stat __user *statbuf); | 413 | struct stat __user *statbuf); |
| 414 | asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf); | 414 | asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf); |
| 415 | asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf); | 415 | asmlinkage long sys_ustat(unsigned dev, struct ustat __user *ubuf); |
| 416 | #if BITS_PER_LONG == 32 | 416 | #if BITS_PER_LONG == 32 |
| 417 | asmlinkage long sys_stat64(char __user *filename, | 417 | asmlinkage long sys_stat64(const char __user *filename, |
| 418 | struct stat64 __user *statbuf); | 418 | struct stat64 __user *statbuf); |
| 419 | asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf); | 419 | asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user *statbuf); |
| 420 | asmlinkage long sys_lstat64(char __user *filename, | 420 | asmlinkage long sys_lstat64(const char __user *filename, |
| 421 | struct stat64 __user *statbuf); | 421 | struct stat64 __user *statbuf); |
| 422 | asmlinkage long sys_truncate64(const char __user *path, loff_t length); | 422 | asmlinkage long sys_truncate64(const char __user *path, loff_t length); |
| 423 | asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length); | 423 | asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length); |
| @@ -760,7 +760,7 @@ asmlinkage long sys_linkat(int olddfd, const char __user *oldname, | |||
| 760 | int newdfd, const char __user *newname, int flags); | 760 | int newdfd, const char __user *newname, int flags); |
| 761 | asmlinkage long sys_renameat(int olddfd, const char __user * oldname, | 761 | asmlinkage long sys_renameat(int olddfd, const char __user * oldname, |
| 762 | int newdfd, const char __user * newname); | 762 | int newdfd, const char __user * newname); |
| 763 | asmlinkage long sys_futimesat(int dfd, char __user *filename, | 763 | asmlinkage long sys_futimesat(int dfd, const char __user *filename, |
| 764 | struct timeval __user *utimes); | 764 | struct timeval __user *utimes); |
| 765 | asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode); | 765 | asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode); |
| 766 | asmlinkage long sys_fchmodat(int dfd, const char __user * filename, | 766 | asmlinkage long sys_fchmodat(int dfd, const char __user * filename, |
| @@ -769,13 +769,13 @@ asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user, | |||
| 769 | gid_t group, int flag); | 769 | gid_t group, int flag); |
| 770 | asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, | 770 | asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, |
| 771 | int mode); | 771 | int mode); |
| 772 | asmlinkage long sys_newfstatat(int dfd, char __user *filename, | 772 | asmlinkage long sys_newfstatat(int dfd, const char __user *filename, |
| 773 | struct stat __user *statbuf, int flag); | 773 | struct stat __user *statbuf, int flag); |
| 774 | asmlinkage long sys_fstatat64(int dfd, char __user *filename, | 774 | asmlinkage long sys_fstatat64(int dfd, const char __user *filename, |
| 775 | struct stat64 __user *statbuf, int flag); | 775 | struct stat64 __user *statbuf, int flag); |
| 776 | asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf, | 776 | asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf, |
| 777 | int bufsiz); | 777 | int bufsiz); |
| 778 | asmlinkage long sys_utimensat(int dfd, char __user *filename, | 778 | asmlinkage long sys_utimensat(int dfd, const char __user *filename, |
| 779 | struct timespec __user *utimes, int flags); | 779 | struct timespec __user *utimes, int flags); |
| 780 | asmlinkage long sys_unshare(unsigned long unshare_flags); | 780 | asmlinkage long sys_unshare(unsigned long unshare_flags); |
| 781 | 781 | ||
diff --git a/include/linux/time.h b/include/linux/time.h index 12612701b1ae..9f15ac7ab92a 100644 --- a/include/linux/time.h +++ b/include/linux/time.h | |||
| @@ -150,7 +150,7 @@ extern void do_gettimeofday(struct timeval *tv); | |||
| 150 | extern int do_settimeofday(struct timespec *tv); | 150 | extern int do_settimeofday(struct timespec *tv); |
| 151 | extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz); | 151 | extern int do_sys_settimeofday(struct timespec *tv, struct timezone *tz); |
| 152 | #define do_posix_clock_monotonic_gettime(ts) ktime_get_ts(ts) | 152 | #define do_posix_clock_monotonic_gettime(ts) ktime_get_ts(ts) |
| 153 | extern long do_utimes(int dfd, char __user *filename, struct timespec *times, int flags); | 153 | extern long do_utimes(int dfd, const char __user *filename, struct timespec *times, int flags); |
| 154 | struct itimerval; | 154 | struct itimerval; |
| 155 | extern int do_setitimer(int which, struct itimerval *value, | 155 | extern int do_setitimer(int which, struct itimerval *value, |
| 156 | struct itimerval *ovalue); | 156 | struct itimerval *ovalue); |
