OSDN Git Service

drivers: Push down BKL into various drivers
[android-x86/kernel.git] / drivers / char / ipmi / ipmi_watchdog.c
index a4d57e3..82bcdb2 100644 (file)
@@ -659,7 +659,7 @@ static struct watchdog_info ident = {
        .identity       = "IPMI"
 };
 
-static int ipmi_ioctl(struct inode *inode, struct file *file,
+static int ipmi_ioctl(struct file *file,
                      unsigned int cmd, unsigned long arg)
 {
        void __user *argp = (void __user *)arg;
@@ -730,6 +730,19 @@ static int ipmi_ioctl(struct inode *inode, struct file *file,
        }
 }
 
+static long ipmi_unlocked_ioctl(struct file *file,
+                               unsigned int cmd,
+                               unsigned long arg)
+{
+       int ret;
+
+       lock_kernel();
+       ret = ipmi_ioctl(file, cmd, arg);
+       unlock_kernel();
+
+       return ret;
+}
+
 static ssize_t ipmi_write(struct file *file,
                          const char  __user *buf,
                          size_t      len,
@@ -880,7 +893,7 @@ static const struct file_operations ipmi_wdog_fops = {
        .read    = ipmi_read,
        .poll    = ipmi_poll,
        .write   = ipmi_write,
-       .ioctl   = ipmi_ioctl,
+       .unlocked_ioctl = ipmi_unlocked_ioctl,
        .open    = ipmi_open,
        .release = ipmi_close,
        .fasync  = ipmi_fasync,