X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fsparc%2Fkernel%2Fapc.c;h=d01b6cc6678e8532f9b5c0196a8f61d93be490f6;hb=8924cb29b44d7e7bc69a58f6d196470a5bcd9385;hp=f502d9b63bf1920a60130bad7d128eed9373ce47;hpb=86090fcac5e27b630656fe3d963a6b80e26dac44;p=linux-2.6.git diff --git a/arch/sparc/kernel/apc.c b/arch/sparc/kernel/apc.c index f502d9b63..d01b6cc66 100644 --- a/arch/sparc/kernel/apc.c +++ b/arch/sparc/kernel/apc.c @@ -84,47 +84,44 @@ static int apc_release(struct inode *inode, struct file *f) } static int apc_ioctl(struct inode *inode, struct file *f, - unsigned int cmd, unsigned long arg) + unsigned int cmd, unsigned long __arg) { - __u8 inarg; + __u8 inarg, __user *arg; + arg = (__u8 __user *) __arg; switch (cmd) { - case APCIOCGFANCTL: - if(put_user(apc_readb(APC_FANCTL_REG) & APC_REGMASK, (__u8*) arg)) { + case APCIOCGFANCTL: + if (put_user(apc_readb(APC_FANCTL_REG) & APC_REGMASK, arg)) return -EFAULT; - } - break; - case APCIOCGCPWR: - if(put_user(apc_readb(APC_CPOWER_REG) & APC_REGMASK, (__u8*) arg)) { - return -EFAULT; - } - break; - case APCIOCGBPORT: - if(put_user(apc_readb(APC_BPORT_REG) & APC_BPMASK, (__u8*) arg)) { - return -EFAULT; - } - break; - - case APCIOCSFANCTL: - if(get_user(inarg, (__u8*) arg)) { - return -EFAULT; - } - apc_writeb(inarg & APC_REGMASK, APC_FANCTL_REG); - break; - case APCIOCSCPWR: - if(get_user(inarg, (__u8*) arg)) { - return -EFAULT; - } - apc_writeb(inarg & APC_REGMASK, APC_CPOWER_REG); - break; - case APCIOCSBPORT: - if(get_user(inarg, (__u8*) arg)) { - return -EFAULT; - } - apc_writeb(inarg & APC_BPMASK, APC_BPORT_REG); - break; - default: - return -EINVAL; + break; + + case APCIOCGCPWR: + if (put_user(apc_readb(APC_CPOWER_REG) & APC_REGMASK, arg)) + return -EFAULT; + break; + + case APCIOCGBPORT: + if (put_user(apc_readb(APC_BPORT_REG) & APC_BPMASK, arg)) + return -EFAULT; + break; + + case APCIOCSFANCTL: + if (get_user(inarg, arg)) + return -EFAULT; + apc_writeb(inarg & APC_REGMASK, APC_FANCTL_REG); + break; + case APCIOCSCPWR: + if (get_user(inarg, arg)) + return -EFAULT; + apc_writeb(inarg & APC_REGMASK, APC_CPOWER_REG); + break; + case APCIOCSBPORT: + if (get_user(inarg, arg)) + return -EFAULT; + apc_writeb(inarg & APC_BPMASK, APC_BPORT_REG); + break; + default: + return -EINVAL; }; return 0;