aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorAlexander Viro <viro@www.linux.org.uk>2004-07-26 06:58:29 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-07-26 06:58:29 -0700
commit4c7dea975c5d327a89269aa64e62cb4a791b2abe (patch)
tree7badb8cda4a8a32c5222269779983b9a7432161f /sound
parentb4f428ee2fa4e81699615c5dc87ac9d55aac98f0 (diff)
downloadhistory-4c7dea975c5d327a89269aa64e62cb4a791b2abe.tar.gz
[PATCH] tea575 fix
Very confused ioctl in tea575x - it is called via video_usercopy(), but assumes that it still has userland pointers. Fixed. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/i2c/other/tea575x-tuner.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/sound/i2c/other/tea575x-tuner.c b/sound/i2c/other/tea575x-tuner.c
index 7b9f3ea7653faf..38dbacf90a92dc 100644
--- a/sound/i2c/other/tea575x-tuner.c
+++ b/sound/i2c/other/tea575x-tuner.c
@@ -85,11 +85,12 @@ static void snd_tea575x_set_freq(tea575x_t *tea)
* Linux Video interface
*/
-static int snd_tea575x_do_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, void *arg)
+static int snd_tea575x_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long data)
{
struct video_device *dev = video_devdata(file);
tea575x_t *tea = video_get_drvdata(dev);
+ void __user *arg = (void __user *)data;
switch(cmd) {
case VIDIOCGCAP:
@@ -167,12 +168,6 @@ static int snd_tea575x_do_ioctl(struct inode *inode, struct file *file,
}
}
-static int snd_tea575x_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, unsigned long arg)
-{
- return video_usercopy(inode, file, cmd, arg, snd_tea575x_do_ioctl);
-}
-
/*
* initialize all the tea575x chips
*/