--- arch/m68k/bvme6000/rtc.c | 4 - arch/m68k/kernel/process.c | 11 ++-- arch/m68k/kernel/ptrace.c | 17 +++--- arch/m68k/kernel/signal.c | 38 +++++++------- arch/m68k/kernel/sys_m68k.c | 35 +++++++------ arch/m68k/kernel/traps.c | 6 +- arch/m68k/mvme16x/rtc.c | 4 - drivers/block/amiflop.c | 6 +- drivers/block/ataflop.c | 8 +-- drivers/char/amiserial.c | 24 +++++---- drivers/char/dsp56k.c | 20 +++---- drivers/video/amifb.c | 32 +++++++----- drivers/zorro/proc.c | 3 - include/asm-m68k/ipc.h | 2 include/asm-m68k/uaccess.h | 30 ++++++----- include/asm-m68k/unistd.h | 2 sound/oss/dmasound/dmasound_atari.c | 92 ++++++++++++++++++------------------ sound/oss/dmasound/dmasound_paula.c | 15 +++-- sound/oss/dmasound/dmasound_q40.c | 18 +++---- 19 files changed, 193 insertions(+), 174 deletions(-) --- linux-2.6.9-rc3/arch/m68k/bvme6000/rtc.c 2004-05-24 11:13:22.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/arch/m68k/bvme6000/rtc.c 2004-09-12 11:24:12.000000000 +0200 @@ -67,7 +67,7 @@ } while (wtime.tm_sec != BCD2BIN(rtc->bcd_sec)); rtc->msr = msr; local_irq_restore(flags); - return copy_to_user((void *)arg, &wtime, sizeof wtime) ? + return copy_to_user((void __user *)arg, &wtime, sizeof wtime) ? -EFAULT : 0; } case RTC_SET_TIME: /* Set the RTC */ @@ -79,7 +79,7 @@ if (!capable(CAP_SYS_ADMIN)) return -EACCES; - if (copy_from_user(&rtc_tm, (struct rtc_time*)arg, + if (copy_from_user(&rtc_tm, (struct rtc_time __user *)arg, sizeof(struct rtc_time))) return -EFAULT; --- linux-2.6.9-rc3/arch/m68k/kernel/process.c 2004-07-29 12:50:13.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/arch/m68k/kernel/process.c 2004-09-12 12:39:14.000000000 +0200 @@ -223,13 +223,13 @@ { unsigned long clone_flags; unsigned long newsp; - int *parent_tidptr, *child_tidptr; + int __user *parent_tidptr, *child_tidptr; /* syscall2 puts clone_flags in d1 and usp in d2 */ clone_flags = regs->d1; newsp = regs->d2; - parent_tidptr = (int *)regs->d3; - child_tidptr = (int *)regs->d4; + parent_tidptr = (int __user *)regs->d3; + child_tidptr = (int __user *)regs->d4; if (!newsp) newsp = rdusp(); return do_fork(clone_flags & ~CLONE_IDLETASK, newsp, regs, 0, @@ -364,11 +364,12 @@ /* * sys_execve() executes a new program. */ -asmlinkage int sys_execve(char *name, char **argv, char **envp) +asmlinkage int sys_execve(char __user *name, char __user * __user *argv, + char __user * __user *envp) { int error; char * filename; - struct pt_regs *regs = (struct pt_regs *) &name; + struct pt_regs *regs = (__force struct pt_regs *) &name; lock_kernel(); filename = getname(name); --- linux-2.6.9-rc3/arch/m68k/kernel/ptrace.c 2004-05-24 11:13:22.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/arch/m68k/kernel/ptrace.c 2004-09-12 11:24:12.000000000 +0200 @@ -120,6 +120,7 @@ { struct task_struct *child; int ret; + unsigned long __user *datap = (unsigned long __user *)data; lock_kernel(); ret = -EPERM; @@ -165,7 +166,7 @@ ret = -EIO; if (copied != sizeof(tmp)) break; - ret = put_user(tmp,(unsigned long *) data); + ret = put_user(tmp, datap); break; } @@ -197,7 +198,7 @@ #endif } else break; - ret = put_user(tmp,(unsigned long *) data); + ret = put_user(tmp, datap); break; } @@ -317,11 +318,11 @@ tmp = get_reg(child, i); if (i == PT_SR) tmp >>= 16; - if (put_user(tmp, (unsigned long *) data)) { + if (put_user(tmp, datap)) { ret = -EFAULT; break; } - data += sizeof(long); + datap++; } ret = 0; break; @@ -331,7 +332,7 @@ int i; unsigned long tmp; for (i = 0; i < 19; i++) { - if (get_user(tmp, (unsigned long *) data)) { + if (get_user(tmp, datap)) { ret = -EFAULT; break; } @@ -341,7 +342,7 @@ tmp |= get_reg(child, PT_SR) & ~(SR_MASK << 16); } put_reg(child, i, tmp); - data += sizeof(long); + datap++; } ret = 0; break; @@ -349,7 +350,7 @@ case PTRACE_GETFPREGS: { /* Get the child FPU state. */ ret = 0; - if (copy_to_user((void *)data, &child->thread.fp, + if (copy_to_user(datap, &child->thread.fp, sizeof(struct user_m68kfp_struct))) ret = -EFAULT; break; @@ -357,7 +358,7 @@ case PTRACE_SETFPREGS: { /* Set the child FPU state. */ ret = 0; - if (copy_from_user(&child->thread.fp, (void *)data, + if (copy_from_user(&child->thread.fp, datap, sizeof(struct user_m68kfp_struct))) ret = -EFAULT; break; --- linux-2.6.9-rc3/arch/m68k/kernel/signal.c 2004-08-04 12:13:35.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/arch/m68k/kernel/signal.c 2004-09-12 12:53:35.000000000 +0200 @@ -96,7 +96,7 @@ asmlinkage int do_rt_sigsuspend(struct pt_regs *regs) { - sigset_t *unewset = (sigset_t *)regs->d1; + sigset_t __user *unewset = (sigset_t __user *)regs->d1; size_t sigsetsize = (size_t)regs->d2; sigset_t saveset, newset; @@ -122,8 +122,8 @@ } asmlinkage int -sys_sigaction(int sig, const struct old_sigaction *act, - struct old_sigaction *oact) +sys_sigaction(int sig, const struct old_sigaction __user *act, + struct old_sigaction __user *oact) { struct k_sigaction new_ka, old_ka; int ret; @@ -154,7 +154,7 @@ } asmlinkage int -sys_sigaltstack(const stack_t *uss, stack_t *uoss) +sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) { return do_sigaltstack(uss, uoss, rdusp()); } @@ -248,7 +248,7 @@ #define uc_formatvec uc_filler[FPCONTEXT_SIZE/4] #define uc_extra uc_filler[FPCONTEXT_SIZE/4+1] -static inline int rt_restore_fpu_state(struct ucontext *uc) +static inline int rt_restore_fpu_state(struct ucontext __user *uc) { unsigned char fpstate[FPCONTEXT_SIZE]; int context_size = CPU_IS_060 ? 8 : 0; @@ -267,7 +267,7 @@ return 0; } - if (__get_user(*(long *)fpstate, (long *)&uc->uc_fpstate)) + if (__get_user(*(long *)fpstate, (long __user *)&uc->uc_fpstate)) goto out; if (CPU_IS_060 ? fpstate[2] : fpstate[0]) { if (!CPU_IS_060) @@ -306,7 +306,7 @@ "m" (*fpregs.f_fpcntl)); } if (context_size && - __copy_from_user(fpstate + 4, (long *)&uc->uc_fpstate + 1, + __copy_from_user(fpstate + 4, (long __user *)&uc->uc_fpstate + 1, context_size)) goto out; __asm__ volatile (".chip 68k/68881\n\t" @@ -319,8 +319,8 @@ } static inline int -restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, void *fp, - int *pd0) +restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *usc, + void __user *fp, int *pd0) { int fsize, formatvec; struct sigcontext context; @@ -404,10 +404,10 @@ static inline int rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw, - struct ucontext *uc, int *pd0) + struct ucontext __user *uc, int *pd0) { int fsize, temp; - greg_t *gregs = uc->uc_mcontext.gregs; + greg_t __user *gregs = uc->uc_mcontext.gregs; unsigned long usp; int err; @@ -506,7 +506,7 @@ struct switch_stack *sw = (struct switch_stack *) &__unused; struct pt_regs *regs = (struct pt_regs *) (sw + 1); unsigned long usp = rdusp(); - struct sigframe *frame = (struct sigframe *)(usp - 4); + struct sigframe __user *frame = (struct sigframe __user *)(usp - 4); sigset_t set; int d0; @@ -536,7 +536,7 @@ struct switch_stack *sw = (struct switch_stack *) &__unused; struct pt_regs *regs = (struct pt_regs *) (sw + 1); unsigned long usp = rdusp(); - struct rt_sigframe *frame = (struct rt_sigframe *)(usp - 4); + struct rt_sigframe __user *frame = (struct rt_sigframe __user *)(usp - 4); sigset_t set; int d0; @@ -662,10 +662,10 @@ save_fpu_state(sc, regs); } -static inline int rt_setup_ucontext(struct ucontext *uc, struct pt_regs *regs) +static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs *regs) { struct switch_stack *sw = (struct switch_stack *)regs - 1; - greg_t *gregs = uc->uc_mcontext.gregs; + greg_t __user *gregs = uc->uc_mcontext.gregs; int err = 0; err |= __put_user(MCONTEXT_VERSION, &uc->uc_mcontext.version); @@ -753,7 +753,7 @@ } } -static inline void * +static inline void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) { unsigned long usp; @@ -766,13 +766,13 @@ if (!on_sig_stack(usp)) usp = current->sas_ss_sp + current->sas_ss_size; } - return (void *)((usp - frame_size) & -8UL); + return (void __user *)((usp - frame_size) & -8UL); } static void setup_frame (int sig, struct k_sigaction *ka, sigset_t *set, struct pt_regs *regs) { - struct sigframe *frame; + struct sigframe __user *frame; int fsize = frame_extra_sizes[regs->format]; struct sigcontext context; int err = 0; @@ -851,7 +851,7 @@ static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, sigset_t *set, struct pt_regs *regs) { - struct rt_sigframe *frame; + struct rt_sigframe __user *frame; int fsize = frame_extra_sizes[regs->format]; int err = 0; --- linux-2.6.9-rc3/arch/m68k/kernel/sys_m68k.c 2004-05-24 11:13:22.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/arch/m68k/kernel/sys_m68k.c 2004-09-12 11:24:12.000000000 +0200 @@ -31,7 +31,7 @@ * sys_pipe() is the normal C calling standard for creating * a pipe. It's not the way unix traditionally does this, though. */ -asmlinkage int sys_pipe(unsigned long * fildes) +asmlinkage int sys_pipe(unsigned long __user * fildes) { int fd[2]; int error; @@ -93,7 +93,7 @@ unsigned long offset; }; -asmlinkage int old_mmap(struct mmap_arg_struct *arg) +asmlinkage int old_mmap(struct mmap_arg_struct __user *arg) { struct mmap_arg_struct a; int error = -EFAULT; @@ -159,11 +159,11 @@ struct sel_arg_struct { unsigned long n; - fd_set *inp, *outp, *exp; - struct timeval *tvp; + fd_set __user *inp, *outp, *exp; + struct timeval __user *tvp; }; -asmlinkage int old_select(struct sel_arg_struct *arg) +asmlinkage int old_select(struct sel_arg_struct __user *arg) { struct sel_arg_struct a; @@ -179,7 +179,7 @@ * This is really horribly ugly. */ asmlinkage int sys_ipc (uint call, int first, int second, - int third, void *ptr, long fifth) + int third, void __user *ptr, long fifth) { int version, ret; @@ -189,14 +189,15 @@ if (call <= SEMCTL) switch (call) { case SEMOP: - return sys_semop (first, (struct sembuf *)ptr, second); + return sys_semop (first, (struct sembuf __user *)ptr, + second); case SEMGET: return sys_semget (first, second, third); case SEMCTL: { union semun fourth; if (!ptr) return -EINVAL; - if (get_user(fourth.__pad, (void **) ptr)) + if (get_user(fourth.__pad, (void * __user *)ptr)) return -EFAULT; return sys_semctl (first, second, third, fourth); } @@ -206,7 +207,7 @@ if (call <= MSGCTL) switch (call) { case MSGSND: - return sys_msgsnd (first, (struct msgbuf *) ptr, + return sys_msgsnd (first, (struct msgbuf __user *)ptr, second, third); case MSGRCV: switch (version) { @@ -215,7 +216,7 @@ if (!ptr) return -EINVAL; if (copy_from_user (&tmp, - (struct ipc_kludge *)ptr, + (struct ipc_kludge __user *)ptr, sizeof (tmp))) return -EFAULT; return sys_msgrcv (first, tmp.msgp, second, @@ -223,14 +224,14 @@ } default: return sys_msgrcv (first, - (struct msgbuf *) ptr, + (struct msgbuf __user *)ptr, second, fifth, third); } case MSGGET: return sys_msgget ((key_t) first, second); case MSGCTL: return sys_msgctl (first, second, - (struct msqid_ds *) ptr); + (struct msqid_ds __user *)ptr); default: return -ENOSYS; } @@ -240,20 +241,20 @@ switch (version) { default: { ulong raddr; - ret = do_shmat (first, (char *) ptr, - second, &raddr); + ret = do_shmat (first, (char __user *)ptr, + second, &raddr); if (ret) return ret; - return put_user (raddr, (ulong *) third); + return put_user (raddr, (ulong __user *)third); } } case SHMDT: - return sys_shmdt ((char *)ptr); + return sys_shmdt ((char __user *)ptr); case SHMGET: return sys_shmget (first, second, third); case SHMCTL: return sys_shmctl (first, second, - (struct shmid_ds *) ptr); + (struct shmid_ds __user *)ptr); default: return -ENOSYS; } --- linux-2.6.9-rc3/arch/m68k/kernel/traps.c 2004-08-04 12:13:35.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/arch/m68k/kernel/traps.c 2004-09-12 11:24:12.000000000 +0200 @@ -369,13 +369,13 @@ switch (wbs & WBSIZ_040) { case BA_SIZE_BYTE: - res = put_user(wbd & 0xff, (char *)wba); + res = put_user(wbd & 0xff, (char __user *)wba); break; case BA_SIZE_WORD: - res = put_user(wbd & 0xffff, (short *)wba); + res = put_user(wbd & 0xffff, (short __user *)wba); break; case BA_SIZE_LONG: - res = put_user(wbd, (int *)wba); + res = put_user(wbd, (int __user *)wba); break; } --- linux-2.6.9-rc3/arch/m68k/mvme16x/rtc.c 2004-05-24 11:13:22.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/arch/m68k/mvme16x/rtc.c 2004-09-12 11:24:12.000000000 +0200 @@ -63,7 +63,7 @@ wtime.tm_wday = BCD2BIN(rtc->bcd_dow)-1; rtc->ctrl = 0; local_irq_restore(flags); - return copy_to_user((void *)arg, &wtime, sizeof wtime) ? + return copy_to_user((void __user *)arg, &wtime, sizeof wtime) ? -EFAULT : 0; } case RTC_SET_TIME: /* Set the RTC */ @@ -75,7 +75,7 @@ if (!capable(CAP_SYS_ADMIN)) return -EACCES; - if (copy_from_user(&rtc_tm, (struct rtc_time*)arg, + if (copy_from_user(&rtc_tm, (struct rtc_time __user *)arg, sizeof(struct rtc_time))) return -EFAULT; --- linux-2.6.9-rc3/drivers/block/amiflop.c 2004-04-28 11:02:33.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/drivers/block/amiflop.c 2004-09-12 11:24:12.000000000 +0200 @@ -1448,7 +1448,7 @@ loc.sectors = unit[drive].dtype->sects * unit[drive].type->sect_mult; loc.cylinders = unit[drive].type->tracks; loc.start = 0; - if (copy_to_user((void *)param, (void *)&loc, + if (copy_to_user((void __user *)param, (void *)&loc, sizeof(struct hd_geometry))) return -EFAULT; break; @@ -1496,7 +1496,7 @@ getprm.head=unit[drive].type->heads; getprm.sect=unit[drive].dtype->sects * unit[drive].type->sect_mult; getprm.size=unit[drive].blocks; - if (copy_to_user((void *)param, + if (copy_to_user((void __user *)param, (void *)&getprm, sizeof(struct floppy_struct))) return -EFAULT; @@ -1510,7 +1510,7 @@ break; #ifdef RAW_IOCTL case IOCTL_RAW_TRACK: - if (copy_to_user((void *)param, raw_buf, + if (copy_to_user((void __user *)param, raw_buf, unit[drive].type->read_size)) return -EFAULT; else --- linux-2.6.9-rc3/drivers/block/ataflop.c 2004-08-04 12:13:43.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/drivers/block/ataflop.c 2004-09-12 11:24:12.000000000 +0200 @@ -1527,7 +1527,7 @@ getprm.head = 2; getprm.track = dtp->blocks/dtp->spt/2; getprm.stretch = dtp->stretch; - if (copy_to_user((void *)param, &getprm, sizeof(getprm))) + if (copy_to_user((void __user *)param, &getprm, sizeof(getprm))) return -EFAULT; return 0; } @@ -1546,7 +1546,8 @@ /* get the parameters from user space */ if (floppy->ref != 1 && floppy->ref != -1) return -EBUSY; - if (copy_from_user(&setprm, (void *) param, sizeof(setprm))) + if (copy_from_user(&setprm, (void __user *)param, + sizeof(setprm))) return -EFAULT; /* * first of all: check for floppy change and revalidate, @@ -1653,7 +1654,8 @@ case FDFMTTRK: if (floppy->ref != 1 && floppy->ref != -1) return -EBUSY; - if (copy_from_user(&fmt_desc, (void *) param, sizeof(fmt_desc))) + if (copy_from_user(&fmt_desc, (void __user *)param, + sizeof(fmt_desc))) return -EFAULT; return do_format(drive, type, &fmt_desc); case FDCLRPRM: --- linux-2.6.9-rc3/drivers/char/amiserial.c 2004-04-28 15:49:01.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/drivers/char/amiserial.c 2004-09-12 11:24:12.000000000 +0200 @@ -937,7 +937,9 @@ if (count < c) c = count; - c -= copy_from_user(tmp_buf, buf, c); + c -= copy_from_user(tmp_buf, + (const unsigned char __user *)buf, + c); if (!c) { if (!ret) ret = -EFAULT; @@ -1125,8 +1127,8 @@ * ------------------------------------------------------------ */ -static int get_serial_info(struct async_struct * info, - struct serial_struct * retinfo) +static int get_serial_info(struct async_struct *info, + struct serial_struct __user *retinfo) { struct serial_struct tmp; struct serial_state *state = info->state; @@ -1149,8 +1151,8 @@ return 0; } -static int set_serial_info(struct async_struct * info, - struct serial_struct * new_info) +static int set_serial_info(struct async_struct *info, + struct serial_struct __user *new_info) { struct serial_struct new_serial; struct serial_state old_state, *state; @@ -1231,7 +1233,7 @@ * transmit holding register is empty. This functionality * allows an RS485 driver to be written in user space. */ -static int get_lsr_info(struct async_struct * info, unsigned int *value) +static int get_lsr_info(struct async_struct * info, unsigned int __user *value) { unsigned char status; unsigned int result; @@ -1337,18 +1339,18 @@ switch (cmd) { case TIOCGSERIAL: return get_serial_info(info, - (struct serial_struct *) arg); + (struct serial_struct __user *)arg); case TIOCSSERIAL: return set_serial_info(info, - (struct serial_struct *) arg); + (struct serial_struct __user *)arg); case TIOCSERCONFIG: return 0; case TIOCSERGETLSR: /* Get line status register */ - return get_lsr_info(info, (unsigned int *) arg); + return get_lsr_info(info, (unsigned int __user *)arg); case TIOCSERGSTRUCT: - if (copy_to_user((struct async_struct *) arg, + if (copy_to_user((struct async_struct __user *)arg, info, sizeof(struct async_struct))) return -EFAULT; return 0; @@ -1407,7 +1409,7 @@ icount.brk = cnow.brk; icount.buf_overrun = cnow.buf_overrun; - if (copy_to_user((void *)arg, &icount, sizeof(icount))) + if (copy_to_user((void __user *)arg, &icount, sizeof(icount))) return -EFAULT; return 0; case TIOCSERGWILD: --- linux-2.6.9-rc3/drivers/char/dsp56k.c 2004-08-04 12:13:44.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/drivers/char/dsp56k.c 2004-09-12 11:24:12.000000000 +0200 @@ -171,7 +171,7 @@ return 0; } -static int dsp56k_upload(u_char *bin, int len) +static int dsp56k_upload(u_char __user *bin, int len) { int i; u_char *p; @@ -205,7 +205,7 @@ return 0; } -static ssize_t dsp56k_read(struct file *file, char *buf, size_t count, +static ssize_t dsp56k_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; @@ -268,8 +268,8 @@ } } -static ssize_t dsp56k_write(struct file *file, const char *buf, size_t count, - loff_t *ppos) +static ssize_t dsp56k_write(struct file *file, const char __user *buf, + size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; int dev = iminor(inode) & 0x0f; @@ -293,10 +293,10 @@ } case 2: /* 16 bit */ { - const short *data; + const short __user *data; count /= 2; - data = (const short *)buf; + data = (const short __user *)buf; handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_TRANSMIT, get_user(dsp56k_host_interface.data.w[1], data+n++)); return 2*n; @@ -312,10 +312,10 @@ } case 4: /* 32 bit */ { - const long *data; + const long __user *data; count /= 4; - data = (const long *)buf; + data = (const long __user *)buf; handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_TRANSMIT, get_user(dsp56k_host_interface.data.l, data+n++)); return 4*n; @@ -342,9 +342,9 @@ switch(cmd) { case DSP56K_UPLOAD: { - char *bin; + char __user *bin; int r, len; - struct dsp56k_upload *binary = (struct dsp56k_upload *) arg; + struct dsp56k_upload __user *binary = (struct dsp56k_upload __user *)arg; if(get_user(len, &binary->len) < 0) return -EFAULT; --- linux-2.6.9-rc3/drivers/video/amifb.c 2004-09-10 23:14:25.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/drivers/video/amifb.c 2004-09-12 11:24:13.000000000 +0200 @@ -1164,8 +1164,10 @@ static void ami_init_display(void); static void ami_do_blank(void); static int ami_get_fix_cursorinfo(struct fb_fix_cursorinfo *fix); -static int ami_get_var_cursorinfo(struct fb_var_cursorinfo *var, u_char *data); -static int ami_set_var_cursorinfo(struct fb_var_cursorinfo *var, u_char *data); +static int ami_get_var_cursorinfo(struct fb_var_cursorinfo *var, + u_char __user *data); +static int ami_set_var_cursorinfo(struct fb_var_cursorinfo *var, + u_char __user *data); static int ami_get_cursorstate(struct fb_cursorstate *state); static int ami_set_cursorstate(struct fb_cursorstate *state); static void ami_set_sprite(void); @@ -2189,33 +2191,33 @@ i = ami_get_fix_cursorinfo(&crsr.fix); if (i) return i; - return copy_to_user((void *)arg, &crsr.fix, + return copy_to_user((void __user *)arg, &crsr.fix, sizeof(crsr.fix)) ? -EFAULT : 0; case FBIOGET_VCURSORINFO: i = ami_get_var_cursorinfo(&crsr.var, - ((struct fb_var_cursorinfo *)arg)->data); + (u_char __user *)((struct fb_var_cursorinfo __user *)arg)->data); if (i) return i; - return copy_to_user((void *)arg, &crsr.var, + return copy_to_user((void __user *)arg, &crsr.var, sizeof(crsr.var)) ? -EFAULT : 0; case FBIOPUT_VCURSORINFO: - if (copy_from_user(&crsr.var, (void *)arg, + if (copy_from_user(&crsr.var, (void __user *)arg, sizeof(crsr.var))) return -EFAULT; return ami_set_var_cursorinfo(&crsr.var, - ((struct fb_var_cursorinfo *)arg)->data); + (u_char __user *)((struct fb_var_cursorinfo __user *)arg)->data); case FBIOGET_CURSORSTATE: i = ami_get_cursorstate(&crsr.state); if (i) return i; - return copy_to_user((void *)arg, &crsr.state, + return copy_to_user((void __user *)arg, &crsr.state, sizeof(crsr.state)) ? -EFAULT : 0; case FBIOPUT_CURSORSTATE: - if (copy_from_user(&crsr.state, (void *)arg, + if (copy_from_user(&crsr.state, (void __user *)arg, sizeof(crsr.state))) return -EFAULT; return ami_set_cursorstate(&crsr.state); @@ -3331,7 +3333,8 @@ return 0; } -static int ami_get_var_cursorinfo(struct fb_var_cursorinfo *var, u_char *data) +static int ami_get_var_cursorinfo(struct fb_var_cursorinfo *var, + u_char __user *data) { struct amifb_par *par = ¤tpar; register u_short *lspr, *sspr; @@ -3353,7 +3356,7 @@ var->yspot = par->crsr.spot_y; if (size > var->height*var->width) return -ENAMETOOLONG; - if ((i = verify_area(VERIFY_WRITE, (void *)data, size))) + if ((i = verify_area(VERIFY_WRITE, data, size))) return i; delta = 1<crsr.fmode; lspr = lofsprite + (delta<<1); @@ -3406,7 +3409,8 @@ return 0; } -static int ami_set_var_cursorinfo(struct fb_var_cursorinfo *var, u_char *data) +static int ami_set_var_cursorinfo(struct fb_var_cursorinfo *var, + u_char __user *data) { struct amifb_par *par = ¤tpar; register u_short *lspr, *sspr; @@ -3434,7 +3438,7 @@ return -EINVAL; if (!var->height) return -EINVAL; - if ((i = verify_area(VERIFY_READ, (void *)data, var->width*var->height))) + if ((i = verify_area(VERIFY_READ, data, var->width*var->height))) return i; delta = 1<width-1; width >= 0; width--) { unsigned long tdata = 0; - get_user(tdata, (char *)data); + get_user(tdata, (char __user *)data); data++; #ifdef __mc68000__ asm volatile ( --- linux-2.6.9-rc3/drivers/zorro/proc.c 2004-07-29 12:50:13.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/drivers/zorro/proc.c 2004-09-12 11:24:13.000000000 +0200 @@ -50,7 +50,8 @@ } static ssize_t -proc_bus_zorro_read(struct file *file, char *buf, size_t nbytes, loff_t *ppos) +proc_bus_zorro_read(struct file *file, char __user *buf, size_t nbytes, + loff_t *ppos) { struct inode *ino = file->f_dentry->d_inode; struct proc_dir_entry *dp = PDE(ino); --- linux-2.6.9-rc3/include/asm-m68k/ipc.h 2004-05-24 11:13:53.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/include/asm-m68k/ipc.h 2004-09-12 11:24:13.000000000 +0200 @@ -7,7 +7,7 @@ * See arch/m68k/kernel/sys_m68k.c for ugly details.. */ struct ipc_kludge { - struct msgbuf *msgp; + struct msgbuf __user *msgp; long msgtyp; }; --- linux-2.6.9-rc3/include/asm-m68k/uaccess.h 2004-04-28 15:47:30.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/include/asm-m68k/uaccess.h 2004-09-12 12:42:04.000000000 +0200 @@ -12,9 +12,14 @@ #define VERIFY_WRITE 1 /* We let the MMU do all checking */ -#define access_ok(type,addr,size) 1 +static inline int access_ok(int type, const void __user * addr, + unsigned long size) +{ + return 1; +} -static inline int verify_area(int type, const void *addr, unsigned long size) +static inline int verify_area(int type, const void __user *addr, + unsigned long size) { return access_ok(type,addr,size)?0:-EFAULT; } @@ -94,8 +99,7 @@ #define get_user(x, ptr) \ ({ \ - int __gu_err; \ - typeof(*(ptr)) __gu_val; \ + int __gu_err, __gu_val; \ switch (sizeof(*(ptr))) { \ case 1: \ __get_user_asm(__gu_err, __gu_val, ptr, b, "=d"); \ @@ -114,7 +118,7 @@ __gu_err = __get_user_bad(); \ break; \ } \ - (x) = __gu_val; \ + (x) = (typeof(*(ptr)))__gu_val; \ __gu_err; \ }) #define __get_user(x, ptr) get_user(x, ptr) @@ -139,7 +143,7 @@ : "m"(*(ptr)), "i" (-EFAULT), "0"(0)) static inline unsigned long -__generic_copy_from_user(void *to, const void *from, unsigned long n) +__generic_copy_from_user(void *to, const void __user *from, unsigned long n) { unsigned long tmp; __asm__ __volatile__ @@ -194,7 +198,7 @@ } static inline unsigned long -__generic_copy_to_user(void *to, const void *from, unsigned long n) +__generic_copy_to_user(void __user *to, const void *from, unsigned long n) { unsigned long tmp; __asm__ __volatile__ @@ -269,7 +273,7 @@ : "d0", "memory") static inline unsigned long -__constant_copy_from_user(void *to, const void *from, unsigned long n) +__constant_copy_from_user(void *to, const void __user *from, unsigned long n) { switch (n) { case 0: @@ -522,7 +526,7 @@ : "d0", "memory") static inline unsigned long -__constant_copy_to_user(void *to, const void *from, unsigned long n) +__constant_copy_to_user(void __user *to, const void *from, unsigned long n) { switch (n) { case 0: @@ -768,7 +772,7 @@ */ static inline long -strncpy_from_user(char *dst, const char *src, long count) +strncpy_from_user(char *dst, const char __user *src, long count) { long res; if (count == 0) return count; @@ -801,11 +805,11 @@ * * Return 0 on exception, a value greater than N if too long */ -static inline long strnlen_user(const char *src, long n) +static inline long strnlen_user(const char __user *src, long n) { long res; - res = -(long)src; + res = -(__force long)src; __asm__ __volatile__ ("1:\n" " tstl %2\n" @@ -844,7 +848,7 @@ */ static inline unsigned long -clear_user(void *to, unsigned long n) +clear_user(void __user *to, unsigned long n) { __asm__ __volatile__ (" tstl %1\n" --- linux-2.6.9-rc3/include/asm-m68k/unistd.h 2004-06-16 12:50:43.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/include/asm-m68k/unistd.h 2004-09-12 11:24:13.000000000 +0200 @@ -397,7 +397,7 @@ unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); asmlinkage int sys_execve(char *name, char **argv, char **envp); -asmlinkage int sys_pipe(unsigned long *fildes); +asmlinkage int sys_pipe(unsigned long __user *fildes); asmlinkage int sys_ptrace(long request, long pid, long addr, long data); struct pt_regs; struct sigaction; --- linux-2.6.9-rc3/sound/oss/dmasound/dmasound_atari.c 2004-08-04 12:14:44.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/sound/oss/dmasound/dmasound_atari.c 2004-09-12 11:24:15.000000000 +0200 @@ -67,46 +67,46 @@ * ++geert: split in even more functions (one per format) */ -static ssize_t ata_ct_law(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_law(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ct_s8(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_s8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ct_u8(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_u8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ct_s16be(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_s16be(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ct_u16be(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_u16be(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ct_s16le(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_s16le(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ct_u16le(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_u16le(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ctx_law(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_law(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ctx_s8(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_s8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ctx_u8(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_u8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ctx_s16be(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_s16be(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ctx_u16be(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_u16be(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ctx_s16le(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_s16le(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); -static ssize_t ata_ctx_u16le(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_u16le(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft); @@ -151,7 +151,7 @@ /*** Translations ************************************************************/ -static ssize_t ata_ct_law(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_law(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -176,7 +176,7 @@ } -static ssize_t ata_ct_s8(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_s8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -194,7 +194,7 @@ } -static ssize_t ata_ct_u8(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_u8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -217,7 +217,7 @@ used = count*2; while (count > 0) { u_short data; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; *p++ = data ^ 0x8080; count--; @@ -228,7 +228,7 @@ } -static ssize_t ata_ct_s16be(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_s16be(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -240,7 +240,7 @@ used = count*2; while (count > 0) { u_short data; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; *p++ = data; *p++ = data; @@ -259,7 +259,7 @@ } -static ssize_t ata_ct_u16be(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_u16be(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -271,7 +271,7 @@ used = count*2; while (count > 0) { u_short data; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; data ^= 0x8000; *p++ = data; @@ -285,7 +285,7 @@ used = count*4; while (count > 0) { u_long data; - if (get_user(data, ((u_int *)userPtr)++)) + if (get_user(data, ((u_int __user *)userPtr)++)) return -EFAULT; *p++ = data ^ 0x80008000; count--; @@ -296,7 +296,7 @@ } -static ssize_t ata_ct_s16le(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_s16le(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -309,7 +309,7 @@ used = count*2; while (count > 0) { u_short data; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; data = le2be16(data); *p++ = data; @@ -323,7 +323,7 @@ used = count*4; while (count > 0) { u_long data; - if (get_user(data, ((u_int *)userPtr)++)) + if (get_user(data, ((u_int __user *)userPtr)++)) return -EFAULT; data = le2be16dbl(data); *p++ = data; @@ -335,7 +335,7 @@ } -static ssize_t ata_ct_u16le(const u_char *userPtr, size_t userCount, +static ssize_t ata_ct_u16le(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -348,7 +348,7 @@ used = count*2; while (count > 0) { u_short data; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; data = le2be16(data) ^ 0x8000; *p++ = data; @@ -361,7 +361,7 @@ used = count; while (count > 0) { u_long data; - if (get_user(data, ((u_int *)userPtr)++)) + if (get_user(data, ((u_int __user *)userPtr)++)) return -EFAULT; data = le2be16dbl(data) ^ 0x80008000; *p++ = data; @@ -373,7 +373,7 @@ } -static ssize_t ata_ctx_law(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_law(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -435,7 +435,7 @@ } -static ssize_t ata_ctx_s8(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_s8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -470,7 +470,7 @@ if (bal < 0) { if (userCount < 2) break; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; userCount -= 2; bal += hSpeed; @@ -488,7 +488,7 @@ } -static ssize_t ata_ctx_u8(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_u8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -524,7 +524,7 @@ if (bal < 0) { if (userCount < 2) break; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; data ^= 0x8080; userCount -= 2; @@ -543,7 +543,7 @@ } -static ssize_t ata_ctx_s16be(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_s16be(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -561,7 +561,7 @@ if (bal < 0) { if (userCount < 2) break; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; userCount -= 2; bal += hSpeed; @@ -579,7 +579,7 @@ if (bal < 0) { if (userCount < 4) break; - if (get_user(data, ((u_int *)userPtr)++)) + if (get_user(data, ((u_int __user *)userPtr)++)) return -EFAULT; userCount -= 4; bal += hSpeed; @@ -597,7 +597,7 @@ } -static ssize_t ata_ctx_u16be(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_u16be(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -615,7 +615,7 @@ if (bal < 0) { if (userCount < 2) break; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; data ^= 0x8000; userCount -= 2; @@ -634,7 +634,7 @@ if (bal < 0) { if (userCount < 4) break; - if (get_user(data, ((u_int *)userPtr)++)) + if (get_user(data, ((u_int __user *)userPtr)++)) return -EFAULT; data ^= 0x80008000; userCount -= 4; @@ -653,7 +653,7 @@ } -static ssize_t ata_ctx_s16le(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_s16le(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -671,7 +671,7 @@ if (bal < 0) { if (userCount < 2) break; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; data = le2be16(data); userCount -= 2; @@ -690,7 +690,7 @@ if (bal < 0) { if (userCount < 4) break; - if (get_user(data, ((u_int *)userPtr)++)) + if (get_user(data, ((u_int __user *)userPtr)++)) return -EFAULT; data = le2be16dbl(data); userCount -= 4; @@ -709,7 +709,7 @@ } -static ssize_t ata_ctx_u16le(const u_char *userPtr, size_t userCount, +static ssize_t ata_ctx_u16le(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -727,7 +727,7 @@ if (bal < 0) { if (userCount < 2) break; - if (get_user(data, ((u_short *)userPtr)++)) + if (get_user(data, ((u_short __user *)userPtr)++)) return -EFAULT; data = le2be16(data) ^ 0x8000; userCount -= 2; @@ -746,7 +746,7 @@ if (bal < 0) { if (userCount < 4) break; - if (get_user(data, ((u_int *)userPtr)++)) + if (get_user(data, ((u_int __user *)userPtr)++)) return -EFAULT; data = le2be16dbl(data) ^ 0x80008000; userCount -= 4; --- linux-2.6.9-rc3/sound/oss/dmasound/dmasound_paula.c 2004-08-04 12:14:44.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/sound/oss/dmasound/dmasound_paula.c 2004-09-12 13:07:05.000000000 +0200 @@ -156,7 +156,7 @@ * Native format */ -static ssize_t ami_ct_s8(const u_char *userPtr, size_t userCount, +static ssize_t ami_ct_s8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { ssize_t count, used; @@ -189,7 +189,7 @@ */ #define GENERATE_AMI_CT8(funcname, convsample) \ -static ssize_t funcname(const u_char *userPtr, size_t userCount, \ +static ssize_t funcname(const u_char __user *userPtr, size_t userCount, \ u_char frame[], ssize_t *frameUsed, \ ssize_t frameLeft) \ { \ @@ -240,7 +240,7 @@ */ #define GENERATE_AMI_CT_16(funcname, convsample) \ -static ssize_t funcname(const u_char *userPtr, size_t userCount, \ +static ssize_t funcname(const u_char __user *userPtr, size_t userCount, \ u_char frame[], ssize_t *frameUsed, \ ssize_t frameLeft) \ { \ @@ -253,8 +253,9 @@ count = min_t(size_t, userCount, frameLeft)>>1 & ~1; \ used = count*2; \ while (count > 0) { \ - if (get_user(data, ((u_short *)userPtr)++)) \ + if (get_user(data, (u_short __user *)userPtr)) \ return -EFAULT; \ + userPtr += 2; \ data = convsample(data); \ *high++ = data>>8; \ *low++ = (data>>2) & 0x3f; \ @@ -268,13 +269,15 @@ count = min_t(size_t, userCount, frameLeft)>>2 & ~1; \ used = count*4; \ while (count > 0) { \ - if (get_user(data, ((u_short *)userPtr)++)) \ + if (get_user(data, (u_short __user *)userPtr)) \ return -EFAULT; \ + userPtr += 2; \ data = convsample(data); \ *lefth++ = data>>8; \ *leftl++ = (data>>2) & 0x3f; \ - if (get_user(data, ((u_short *)userPtr)++)) \ + if (get_user(data, (u_short __user *)userPtr)) \ return -EFAULT; \ + userPtr += 2; \ data = convsample(data); \ *righth++ = data>>8; \ *rightl++ = (data>>2) & 0x3f; \ --- linux-2.6.9-rc3/sound/oss/dmasound/dmasound_q40.c 2004-08-04 12:14:44.000000000 +0200 +++ linux-m68k-2.6.9-rc3-sparse/sound/oss/dmasound/dmasound_q40.c 2004-09-12 11:24:15.000000000 +0200 @@ -58,7 +58,7 @@ /* userCount, frameUsed, frameLeft == byte counts */ -static ssize_t q40_ct_law(const u_char *userPtr, size_t userCount, +static ssize_t q40_ct_law(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -79,7 +79,7 @@ } -static ssize_t q40_ct_s8(const u_char *userPtr, size_t userCount, +static ssize_t q40_ct_s8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -98,7 +98,7 @@ return used; } -static ssize_t q40_ct_u8(const u_char *userPtr, size_t userCount, +static ssize_t q40_ct_u8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -114,7 +114,7 @@ /* a bit too complicated to optimise right now ..*/ -static ssize_t q40_ctx_law(const u_char *userPtr, size_t userCount, +static ssize_t q40_ctx_law(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -152,7 +152,7 @@ } -static ssize_t q40_ctx_s8(const u_char *userPtr, size_t userCount, +static ssize_t q40_ctx_s8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -189,7 +189,7 @@ } -static ssize_t q40_ctx_u8(const u_char *userPtr, size_t userCount, +static ssize_t q40_ctx_u8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -224,7 +224,7 @@ } /* compressing versions */ -static ssize_t q40_ctc_law(const u_char *userPtr, size_t userCount, +static ssize_t q40_ctc_law(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -265,7 +265,7 @@ } -static ssize_t q40_ctc_s8(const u_char *userPtr, size_t userCount, +static ssize_t q40_ctc_s8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) { @@ -304,7 +304,7 @@ } -static ssize_t q40_ctc_u8(const u_char *userPtr, size_t userCount, +static ssize_t q40_ctc_u8(const u_char __user *userPtr, size_t userCount, u_char frame[], ssize_t *frameUsed, ssize_t frameLeft) {