X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Foss%2Fpas2_mixer.c;h=4aade530458743fb3b51c05a37289571ca1438c8;hb=d939d46ba7caa14e960be18e18f5c07be8806d7a;hp=57d95d7ec433197958651767b8c6946faa4d0527;hpb=86090fcac5e27b630656fe3d963a6b80e26dac44;p=linux-2.6.git diff --git a/sound/oss/pas2_mixer.c b/sound/oss/pas2_mixer.c index 57d95d7ec..4aade5304 100644 --- a/sound/oss/pas2_mixer.c +++ b/sound/oss/pas2_mixer.c @@ -215,13 +215,14 @@ pas_mixer_reset(void) set_mode(0x04 | 0x01); } -static int pas_mixer_ioctl(int dev, unsigned int cmd, caddr_t arg) +static int pas_mixer_ioctl(int dev, unsigned int cmd, void __user *arg) { int level,v ; + int __user *p = (int __user *)arg; DEB(printk("pas2_mixer.c: int pas_mixer_ioctl(unsigned int cmd = %X, unsigned int arg = %X)\n", cmd, arg)); if (cmd == SOUND_MIXER_PRIVATE1) { /* Set loudness bit */ - if (get_user(level, (int *)arg)) + if (get_user(level, p)) return -EFAULT; if (level == -1) /* Return current settings */ level = (mode_control & 0x04); @@ -232,10 +233,10 @@ static int pas_mixer_ioctl(int dev, unsigned int cmd, caddr_t arg) set_mode(mode_control); } level = !!level; - return put_user(level, (int *)arg); + return put_user(level, p); } if (cmd == SOUND_MIXER_PRIVATE2) { /* Set enhance bit */ - if (get_user(level, (int *)arg)) + if (get_user(level, p)) return -EFAULT; if (level == -1) { /* Return current settings */ if (!(mode_control & 0x03)) @@ -255,10 +256,10 @@ static int pas_mixer_ioctl(int dev, unsigned int cmd, caddr_t arg) i = (i + 1) * 20; level = i; } - return put_user(level, (int *)arg); + return put_user(level, p); } if (cmd == SOUND_MIXER_PRIVATE3) { /* Set mute bit */ - if (get_user(level, (int *)arg)) + if (get_user(level, p)) return -EFAULT; if (level == -1) /* Return current settings */ level = !(pas_read(0x0B8A) & 0x20); @@ -270,10 +271,10 @@ static int pas_mixer_ioctl(int dev, unsigned int cmd, caddr_t arg) level = !(pas_read(0x0B8A) & 0x20); } - return put_user(level, (int *)arg); + return put_user(level, p); } if (((cmd >> 8) & 0xff) == 'M') { - if (get_user(v, (int *)arg)) + if (get_user(v, p)) return -EFAULT; if (_SIOC_DIR(cmd) & _SIOC_WRITE) { v = pas_mixer_set(cmd & 0xff, v); @@ -304,7 +305,7 @@ static int pas_mixer_ioctl(int dev, unsigned int cmd, caddr_t arg) break; } } - return put_user(v, (int *)arg); + return put_user(v, p); } return -EINVAL; }