diff options
Diffstat (limited to 'drivers/sound/emu10k1/mixer.c')
-rw-r--r-- | drivers/sound/emu10k1/mixer.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/sound/emu10k1/mixer.c b/drivers/sound/emu10k1/mixer.c index f28787f87..a80b9d19a 100644 --- a/drivers/sound/emu10k1/mixer.c +++ b/drivers/sound/emu10k1/mixer.c @@ -1038,7 +1038,9 @@ static int emu10k1_mixer_ioctl(struct inode *inode, struct file *file, unsigned if (card->isaps) return -EINVAL; - get_user_ret(val, (int *) arg, -EFAULT); + if (get_user(val, (int *) arg)) + return -EFAULT; + i = hweight32(val); if (i == 0) return 0; /* val = mixer_recmask(s); */ @@ -1062,7 +1064,9 @@ static int emu10k1_mixer_ioctl(struct inode *inode, struct file *file, unsigned if (i >= SOUND_MIXER_NRDEVICES) return -EINVAL; - get_user_ret(val, (int *) arg, -EFAULT); + if (get_user(val, (int *) arg)) + return -EFAULT; + if (emu10k1_mixer_wrch(card, i, val)) return -EINVAL; |