diff options
| -rw-r--r-- | arch/parisc/hpux/fs.c | 26 | ||||
| -rw-r--r-- | arch/parisc/hpux/sys_hpux.c | 32 | ||||
| -rw-r--r-- | arch/parisc/kernel/pci-dma.c | 2 | ||||
| -rw-r--r-- | arch/parisc/mm/ioremap.c | 6 |
4 files changed, 34 insertions, 32 deletions
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c index 4204cd1f3cf9..c7a81a2c014c 100644 --- a/arch/parisc/hpux/fs.c +++ b/arch/parisc/hpux/fs.c | |||
| @@ -35,13 +35,13 @@ int hpux_execve(struct pt_regs *regs) | |||
| 35 | int error; | 35 | int error; |
| 36 | char *filename; | 36 | char *filename; |
| 37 | 37 | ||
| 38 | filename = getname((char *) regs->gr[26]); | 38 | filename = getname((char __user *) regs->gr[26]); |
| 39 | error = PTR_ERR(filename); | 39 | error = PTR_ERR(filename); |
| 40 | if (IS_ERR(filename)) | 40 | if (IS_ERR(filename)) |
| 41 | goto out; | 41 | goto out; |
| 42 | 42 | ||
| 43 | error = do_execve(filename, (char **) regs->gr[25], | 43 | error = do_execve(filename, (char __user * __user *) regs->gr[25], |
| 44 | (char **)regs->gr[24], regs); | 44 | (char __user * __user *) regs->gr[24], regs); |
| 45 | 45 | ||
| 46 | if (error == 0) { | 46 | if (error == 0) { |
| 47 | task_lock(current); | 47 | task_lock(current); |
| @@ -63,19 +63,19 @@ struct hpux_dirent { | |||
| 63 | }; | 63 | }; |
| 64 | 64 | ||
| 65 | struct getdents_callback { | 65 | struct getdents_callback { |
| 66 | struct hpux_dirent *current_dir; | 66 | struct hpux_dirent __user *current_dir; |
| 67 | struct hpux_dirent *previous; | 67 | struct hpux_dirent __user *previous; |
| 68 | int count; | 68 | int count; |
| 69 | int error; | 69 | int error; |
| 70 | }; | 70 | }; |
| 71 | 71 | ||
| 72 | #define NAME_OFFSET(de) ((int) ((de)->d_name - (char *) (de))) | 72 | #define NAME_OFFSET(de) ((int) ((de)->d_name - (char __user *) (de))) |
| 73 | #define ROUND_UP(x) (((x)+sizeof(long)-1) & ~(sizeof(long)-1)) | 73 | #define ROUND_UP(x) (((x)+sizeof(long)-1) & ~(sizeof(long)-1)) |
| 74 | 74 | ||
| 75 | static int filldir(void * __buf, const char * name, int namlen, loff_t offset, | 75 | static int filldir(void * __buf, const char * name, int namlen, loff_t offset, |
| 76 | u64 ino, unsigned d_type) | 76 | u64 ino, unsigned d_type) |
| 77 | { | 77 | { |
| 78 | struct hpux_dirent * dirent; | 78 | struct hpux_dirent __user * dirent; |
| 79 | struct getdents_callback * buf = (struct getdents_callback *) __buf; | 79 | struct getdents_callback * buf = (struct getdents_callback *) __buf; |
| 80 | ino_t d_ino; | 80 | ino_t d_ino; |
| 81 | int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 1); | 81 | int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 1); |
| @@ -105,10 +105,10 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, | |||
| 105 | #undef NAME_OFFSET | 105 | #undef NAME_OFFSET |
| 106 | #undef ROUND_UP | 106 | #undef ROUND_UP |
| 107 | 107 | ||
| 108 | int hpux_getdents(unsigned int fd, struct hpux_dirent *dirent, unsigned int count) | 108 | int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned int count) |
| 109 | { | 109 | { |
| 110 | struct file * file; | 110 | struct file * file; |
| 111 | struct hpux_dirent * lastdirent; | 111 | struct hpux_dirent __user * lastdirent; |
| 112 | struct getdents_callback buf; | 112 | struct getdents_callback buf; |
| 113 | int error = -EBADF; | 113 | int error = -EBADF; |
| 114 | 114 | ||
| @@ -143,7 +143,7 @@ int hpux_mount(const char *fs, const char *path, int mflag, | |||
| 143 | return -ENOSYS; | 143 | return -ENOSYS; |
| 144 | } | 144 | } |
| 145 | 145 | ||
| 146 | static int cp_hpux_stat(struct kstat *stat, struct hpux_stat64 *statbuf) | 146 | static int cp_hpux_stat(struct kstat *stat, struct hpux_stat64 __user *statbuf) |
| 147 | { | 147 | { |
| 148 | struct hpux_stat64 tmp; | 148 | struct hpux_stat64 tmp; |
| 149 | 149 | ||
| @@ -169,7 +169,7 @@ static int cp_hpux_stat(struct kstat *stat, struct hpux_stat64 *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 *filename, struct hpux_stat64 *statbuf) | 172 | long hpux_stat64(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); |
| @@ -180,7 +180,7 @@ long hpux_stat64(char *filename, struct hpux_stat64 *statbuf) | |||
| 180 | return error; | 180 | return error; |
| 181 | } | 181 | } |
| 182 | 182 | ||
| 183 | long hpux_fstat64(unsigned int fd, struct hpux_stat64 *statbuf) | 183 | long hpux_fstat64(unsigned int fd, struct hpux_stat64 __user *statbuf) |
| 184 | { | 184 | { |
| 185 | struct kstat stat; | 185 | struct kstat stat; |
| 186 | int error = vfs_fstat(fd, &stat); | 186 | int error = vfs_fstat(fd, &stat); |
| @@ -191,7 +191,7 @@ long hpux_fstat64(unsigned int fd, struct hpux_stat64 *statbuf) | |||
| 191 | return error; | 191 | return error; |
| 192 | } | 192 | } |
| 193 | 193 | ||
| 194 | long hpux_lstat64(char *filename, struct hpux_stat64 *statbuf) | 194 | long hpux_lstat64(char __user *filename, struct hpux_stat64 __user *statbuf) |
| 195 | { | 195 | { |
| 196 | struct kstat stat; | 196 | struct kstat stat; |
| 197 | int error = vfs_lstat(filename, &stat); | 197 | int error = vfs_lstat(filename, &stat); |
diff --git a/arch/parisc/hpux/sys_hpux.c b/arch/parisc/hpux/sys_hpux.c index 2e2dc4f2c853..372edb0348d3 100644 --- a/arch/parisc/hpux/sys_hpux.c +++ b/arch/parisc/hpux/sys_hpux.c | |||
| @@ -61,7 +61,7 @@ int hpux_ptrace(void) | |||
| 61 | return -ENOSYS; | 61 | return -ENOSYS; |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | int hpux_wait(int *stat_loc) | 64 | int hpux_wait(int __user *stat_loc) |
| 65 | { | 65 | { |
| 66 | return sys_waitpid(-1, stat_loc, 0); | 66 | return sys_waitpid(-1, stat_loc, 0); |
| 67 | } | 67 | } |
| @@ -255,7 +255,7 @@ asmlinkage long hpux_fstatfs(unsigned int fd, struct hpux_statfs __user * buf) | |||
| 255 | /* TODO: Are these put_user calls OK? Should they pass an int? | 255 | /* TODO: Are these put_user calls OK? Should they pass an int? |
| 256 | * (I copied it from sys_i386.c like this.) | 256 | * (I copied it from sys_i386.c like this.) |
| 257 | */ | 257 | */ |
| 258 | static int hpux_uname(struct hpux_utsname *name) | 258 | static int hpux_uname(struct hpux_utsname __user *name) |
| 259 | { | 259 | { |
| 260 | int error; | 260 | int error; |
| 261 | 261 | ||
| @@ -300,14 +300,14 @@ static int hpux_uname(struct hpux_utsname *name) | |||
| 300 | /* Note: HP-UX just uses the old suser() function to check perms | 300 | /* Note: HP-UX just uses the old suser() function to check perms |
| 301 | * in this system call. We'll use capable(CAP_SYS_ADMIN). | 301 | * in this system call. We'll use capable(CAP_SYS_ADMIN). |
| 302 | */ | 302 | */ |
| 303 | int hpux_utssys(char *ubuf, int n, int type) | 303 | int hpux_utssys(char __user *ubuf, int n, int type) |
| 304 | { | 304 | { |
| 305 | int len; | 305 | int len; |
| 306 | int error; | 306 | int error; |
| 307 | switch( type ) { | 307 | switch( type ) { |
| 308 | case 0: | 308 | case 0: |
| 309 | /* uname(): */ | 309 | /* uname(): */ |
| 310 | return( hpux_uname( (struct hpux_utsname *)ubuf ) ); | 310 | return hpux_uname((struct hpux_utsname __user *)ubuf); |
| 311 | break ; | 311 | break ; |
| 312 | case 1: | 312 | case 1: |
| 313 | /* Obsolete (used to be umask().) */ | 313 | /* Obsolete (used to be umask().) */ |
| @@ -315,8 +315,9 @@ int hpux_utssys(char *ubuf, int n, int type) | |||
| 315 | break ; | 315 | break ; |
| 316 | case 2: | 316 | case 2: |
| 317 | /* ustat(): */ | 317 | /* ustat(): */ |
| 318 | return( hpux_ustat(new_decode_dev(n), (struct hpux_ustat *)ubuf) ); | 318 | return hpux_ustat(new_decode_dev(n), |
| 319 | break ; | 319 | (struct hpux_ustat __user *)ubuf); |
| 320 | break; | ||
| 320 | case 3: | 321 | case 3: |
| 321 | /* setuname(): | 322 | /* setuname(): |
| 322 | * | 323 | * |
| @@ -332,7 +333,7 @@ int hpux_utssys(char *ubuf, int n, int type) | |||
| 332 | return -EINVAL ; | 333 | return -EINVAL ; |
| 333 | /* Unlike Linux, HP-UX truncates it if n is too big: */ | 334 | /* Unlike Linux, HP-UX truncates it if n is too big: */ |
| 334 | len = (n <= __NEW_UTS_LEN) ? n : __NEW_UTS_LEN ; | 335 | len = (n <= __NEW_UTS_LEN) ? n : __NEW_UTS_LEN ; |
| 335 | return( sys_sethostname(ubuf, len) ); | 336 | return sys_sethostname(ubuf, len); |
| 336 | break ; | 337 | break ; |
| 337 | case 4: | 338 | case 4: |
| 338 | /* sethostname(): | 339 | /* sethostname(): |
| @@ -346,7 +347,7 @@ int hpux_utssys(char *ubuf, int n, int type) | |||
| 346 | return -EINVAL ; | 347 | return -EINVAL ; |
| 347 | /* Unlike Linux, HP-UX truncates it if n is too big: */ | 348 | /* Unlike Linux, HP-UX truncates it if n is too big: */ |
| 348 | len = (n <= __NEW_UTS_LEN) ? n : __NEW_UTS_LEN ; | 349 | len = (n <= __NEW_UTS_LEN) ? n : __NEW_UTS_LEN ; |
| 349 | return( sys_sethostname(ubuf, len) ); | 350 | return sys_sethostname(ubuf, len); |
| 350 | break ; | 351 | break ; |
| 351 | case 5: | 352 | case 5: |
| 352 | /* gethostname(): | 353 | /* gethostname(): |
| @@ -356,7 +357,7 @@ int hpux_utssys(char *ubuf, int n, int type) | |||
| 356 | /* Unlike Linux, HP-UX returns an error if n==0: */ | 357 | /* Unlike Linux, HP-UX returns an error if n==0: */ |
| 357 | if ( n <= 0 ) | 358 | if ( n <= 0 ) |
| 358 | return -EINVAL ; | 359 | return -EINVAL ; |
| 359 | return( sys_gethostname(ubuf, n) ); | 360 | return sys_gethostname(ubuf, n); |
| 360 | break ; | 361 | break ; |
| 361 | case 6: | 362 | case 6: |
| 362 | /* Supposedly called from setuname() in libc. | 363 | /* Supposedly called from setuname() in libc. |
| @@ -420,7 +421,7 @@ int hpux_utssys(char *ubuf, int n, int type) | |||
| 420 | } | 421 | } |
| 421 | } | 422 | } |
| 422 | 423 | ||
| 423 | int hpux_getdomainname(char *name, int len) | 424 | int hpux_getdomainname(char __user *name, int len) |
| 424 | { | 425 | { |
| 425 | int nlen; | 426 | int nlen; |
| 426 | int err = -EFAULT; | 427 | int err = -EFAULT; |
| @@ -471,17 +472,18 @@ int hpux_sysfs(int opcode, unsigned long arg1, unsigned long arg2) | |||
| 471 | printk(KERN_DEBUG "hpux_sysfs called with arg1='%lx'\n", arg1); | 472 | printk(KERN_DEBUG "hpux_sysfs called with arg1='%lx'\n", arg1); |
| 472 | 473 | ||
| 473 | if ( opcode == 1 ) { /* GETFSIND */ | 474 | if ( opcode == 1 ) { /* GETFSIND */ |
| 474 | len = strlen_user((char *)arg1); | 475 | char __user *user_fsname = (char __user *)arg1; |
| 476 | len = strlen_user(user_fsname); | ||
| 475 | printk(KERN_DEBUG "len of arg1 = %d\n", len); | 477 | printk(KERN_DEBUG "len of arg1 = %d\n", len); |
| 476 | if (len == 0) | 478 | if (len == 0) |
| 477 | return 0; | 479 | return 0; |
| 478 | fsname = (char *) kmalloc(len, GFP_KERNEL); | 480 | fsname = kmalloc(len, GFP_KERNEL); |
| 479 | if ( !fsname ) { | 481 | if (!fsname) { |
| 480 | printk(KERN_DEBUG "failed to kmalloc fsname\n"); | 482 | printk(KERN_DEBUG "failed to kmalloc fsname\n"); |
| 481 | return 0; | 483 | return 0; |
| 482 | } | 484 | } |
| 483 | 485 | ||
| 484 | if ( copy_from_user(fsname, (char *)arg1, len) ) { | 486 | if (copy_from_user(fsname, user_fsname, len)) { |
| 485 | printk(KERN_DEBUG "failed to copy_from_user fsname\n"); | 487 | printk(KERN_DEBUG "failed to copy_from_user fsname\n"); |
| 486 | kfree(fsname); | 488 | kfree(fsname); |
| 487 | return 0; | 489 | return 0; |
| @@ -495,7 +497,7 @@ int hpux_sysfs(int opcode, unsigned long arg1, unsigned long arg2) | |||
| 495 | fstype = 0; | 497 | fstype = 0; |
| 496 | } else { | 498 | } else { |
| 497 | fstype = 0; | 499 | fstype = 0; |
| 498 | }; | 500 | } |
| 499 | 501 | ||
| 500 | kfree(fsname); | 502 | kfree(fsname); |
| 501 | 503 | ||
diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c index a6caf1073085..0c3aecb85a5c 100644 --- a/arch/parisc/kernel/pci-dma.c +++ b/arch/parisc/kernel/pci-dma.c | |||
| @@ -342,7 +342,7 @@ pcxl_dma_init(void) | |||
| 342 | pcxl_res_map = (char *)__get_free_pages(GFP_KERNEL, | 342 | pcxl_res_map = (char *)__get_free_pages(GFP_KERNEL, |
| 343 | get_order(pcxl_res_size)); | 343 | get_order(pcxl_res_size)); |
| 344 | memset(pcxl_res_map, 0, pcxl_res_size); | 344 | memset(pcxl_res_map, 0, pcxl_res_size); |
| 345 | proc_gsc_root = proc_mkdir("gsc", 0); | 345 | proc_gsc_root = proc_mkdir("gsc", NULL); |
| 346 | if (!proc_gsc_root) | 346 | if (!proc_gsc_root) |
| 347 | printk(KERN_WARNING | 347 | printk(KERN_WARNING |
| 348 | "pcxl_dma_init: Unable to create gsc /proc dir entry\n"); | 348 | "pcxl_dma_init: Unable to create gsc /proc dir entry\n"); |
diff --git a/arch/parisc/mm/ioremap.c b/arch/parisc/mm/ioremap.c index 47a1d2ac9419..6c6102307c06 100644 --- a/arch/parisc/mm/ioremap.c +++ b/arch/parisc/mm/ioremap.c | |||
| @@ -128,7 +128,7 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, | |||
| 128 | */ | 128 | */ |
| 129 | void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) | 129 | void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags) |
| 130 | { | 130 | { |
| 131 | void *addr; | 131 | void __iomem *addr; |
| 132 | struct vm_struct *area; | 132 | struct vm_struct *area; |
| 133 | unsigned long offset, last_addr; | 133 | unsigned long offset, last_addr; |
| 134 | 134 | ||
| @@ -178,13 +178,13 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l | |||
| 178 | if (!area) | 178 | if (!area) |
| 179 | return NULL; | 179 | return NULL; |
| 180 | 180 | ||
| 181 | addr = area->addr; | 181 | addr = (void __iomem *) area->addr; |
| 182 | if (remap_area_pages((unsigned long) addr, phys_addr, size, flags)) { | 182 | if (remap_area_pages((unsigned long) addr, phys_addr, size, flags)) { |
| 183 | vfree(addr); | 183 | vfree(addr); |
| 184 | return NULL; | 184 | return NULL; |
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | return (void __iomem *) (offset + (char *)addr); | 187 | return (void __iomem *) (offset + (char __iomem *)addr); |
| 188 | } | 188 | } |
| 189 | EXPORT_SYMBOL(__ioremap); | 189 | EXPORT_SYMBOL(__ioremap); |
| 190 | 190 | ||
