[WATCHDOG] cpwd.c & riowd.c - unlocked_ioctl
authorWim Van Sebroeck <wim@iguana.be>
Wed, 21 Jan 2009 11:13:11 +0000 (11:13 +0000)
committerWim Van Sebroeck <wim@iguana.be>
Wed, 25 Mar 2009 08:54:57 +0000 (08:54 +0000)
Switch to unlocked_ioctl

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/cpwd.c
drivers/watchdog/riowd.c

index 084dfe9cecfb617575f5c82bc770aaa69db972b3..261790afd65bfdbb18142a37763b208427b9d83a 100644 (file)
@@ -400,8 +400,7 @@ static int cpwd_release(struct inode *inode, struct file *file)
        return 0;
 }
 
-static int cpwd_ioctl(struct inode *inode, struct file *file, 
-                     unsigned int cmd, unsigned long arg)
+static long cpwd_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 {
        static struct watchdog_info info = {
                .options                = WDIOF_SETTIMEOUT,
@@ -409,6 +408,7 @@ static int cpwd_ioctl(struct inode *inode, struct file *file,
                .identity               = DRIVER_NAME,
        };
        void __user *argp = (void __user *)arg;
+       struct inode *inode = file->f_path.dentry->d_inode;
        int index = iminor(inode) - WD0_MINOR;
        struct cpwd *p = cpwd_device;
        int setopt = 0;
@@ -481,7 +481,7 @@ static long cpwd_compat_ioctl(struct file *file, unsigned int cmd,
        case WIOCSTOP:
        case WIOCGSTAT:
                lock_kernel();
-               rval = cpwd_ioctl(file->f_path.dentry->d_inode, file, cmd, arg);
+               rval = cpwd_ioctl(file, cmd, arg);
                unlock_kernel();
                break;
 
@@ -515,13 +515,13 @@ static ssize_t cpwd_read(struct file * file, char __user *buffer,
 }
 
 static const struct file_operations cpwd_fops = {
-       .owner =        THIS_MODULE,
-       .ioctl =        cpwd_ioctl,
-       .compat_ioctl = cpwd_compat_ioctl,
-       .open =         cpwd_open,
-       .write =        cpwd_write,
-       .read =         cpwd_read,
-       .release =      cpwd_release,
+       .owner =                THIS_MODULE,
+       .unlocked_ioctl =       cpwd_ioctl,
+       .compat_ioctl =         cpwd_compat_ioctl,
+       .open =                 cpwd_open,
+       .write =                cpwd_write,
+       .read =                 cpwd_read,
+       .release =              cpwd_release,
 };
 
 static int __devinit cpwd_probe(struct of_device *op,
index 09cb1833ea27a754be67934c98d12396f3f623a7..01cc7e39d92fe93f702f4f16d8f440f5d6319442 100644 (file)
@@ -86,8 +86,7 @@ static int riowd_release(struct inode *inode, struct file *filp)
        return 0;
 }
 
-static int riowd_ioctl(struct inode *inode, struct file *filp,
-                      unsigned int cmd, unsigned long arg)
+static long riowd_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
 {
        static struct watchdog_info info = {
                .options                = WDIOF_SETTIMEOUT,
@@ -160,12 +159,12 @@ static ssize_t riowd_write(struct file *file, const char __user *buf, size_t cou
 }
 
 static const struct file_operations riowd_fops = {
-       .owner =        THIS_MODULE,
-       .llseek =       no_llseek,
-       .ioctl =        riowd_ioctl,
-       .open =         riowd_open,
-       .write =        riowd_write,
-       .release =      riowd_release,
+       .owner =                THIS_MODULE,
+       .llseek =               no_llseek,
+       .unlocked_ioctl =       riowd_ioctl,
+       .open =                 riowd_open,
+       .write =                riowd_write,
+       .release =              riowd_release,
 };
 
 static struct miscdevice riowd_miscdev = {