aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2010-04-26 18:24:05 -0400
committerFrederic Weisbecker <fweisbec@gmail.com>2010-05-16 23:27:41 -0400
commit55929332c92e5d34d65a8f784604c92677ea3e15 (patch)
tree555e922d470336d07ace32bb564ac5358379a3c4 /drivers/hwmon
parent703c631ebbcadcfd861d01e697fdda7c388fec9a (diff)
drivers: Push down BKL into various drivers
These are the last remaining device drivers using the ->ioctl file operation in the drivers directory (except from v4l drivers). [fweisbec: drop i8k pushdown as it has been done from procfs pushdown branch already] Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Diffstat (limited to 'drivers/hwmon')
-rw-r--r--drivers/hwmon/fschmd.c9
-rw-r--r--drivers/hwmon/w83793.c10
2 files changed, 11 insertions, 8 deletions
diff --git a/drivers/hwmon/fschmd.c b/drivers/hwmon/fschmd.c
index 0627f7a5b9b8..b7ca2a9676cf 100644
--- a/drivers/hwmon/fschmd.c
+++ b/drivers/hwmon/fschmd.c
@@ -38,6 +38,7 @@
38#include <linux/i2c.h> 38#include <linux/i2c.h>
39#include <linux/hwmon.h> 39#include <linux/hwmon.h>
40#include <linux/hwmon-sysfs.h> 40#include <linux/hwmon-sysfs.h>
41#include <linux/smp_lock.h>
41#include <linux/err.h> 42#include <linux/err.h>
42#include <linux/mutex.h> 43#include <linux/mutex.h>
43#include <linux/sysfs.h> 44#include <linux/sysfs.h>
@@ -847,8 +848,7 @@ static ssize_t watchdog_write(struct file *filp, const char __user *buf,
847 return count; 848 return count;
848} 849}
849 850
850static int watchdog_ioctl(struct inode *inode, struct file *filp, 851static long watchdog_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
851 unsigned int cmd, unsigned long arg)
852{ 852{
853 static struct watchdog_info ident = { 853 static struct watchdog_info ident = {
854 .options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT | 854 .options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT |
@@ -858,6 +858,7 @@ static int watchdog_ioctl(struct inode *inode, struct file *filp,
858 int i, ret = 0; 858 int i, ret = 0;
859 struct fschmd_data *data = filp->private_data; 859 struct fschmd_data *data = filp->private_data;
860 860
861 lock_kernel();
861 switch (cmd) { 862 switch (cmd) {
862 case WDIOC_GETSUPPORT: 863 case WDIOC_GETSUPPORT:
863 ident.firmware_version = data->revision; 864 ident.firmware_version = data->revision;
@@ -914,7 +915,7 @@ static int watchdog_ioctl(struct inode *inode, struct file *filp,
914 default: 915 default:
915 ret = -ENOTTY; 916 ret = -ENOTTY;
916 } 917 }
917 918 unlock_kernel();
918 return ret; 919 return ret;
919} 920}
920 921
@@ -924,7 +925,7 @@ static const struct file_operations watchdog_fops = {
924 .open = watchdog_open, 925 .open = watchdog_open,
925 .release = watchdog_release, 926 .release = watchdog_release,
926 .write = watchdog_write, 927 .write = watchdog_write,
927 .ioctl = watchdog_ioctl, 928 .unlocked_ioctl = watchdog_ioctl,
928}; 929};
929 930
930 931
diff --git a/drivers/hwmon/w83793.c b/drivers/hwmon/w83793.c
index 612807d97155..697202e27891 100644
--- a/drivers/hwmon/w83793.c
+++ b/drivers/hwmon/w83793.c
@@ -35,6 +35,7 @@
35#include <linux/slab.h> 35#include <linux/slab.h>
36#include <linux/i2c.h> 36#include <linux/i2c.h>
37#include <linux/hwmon.h> 37#include <linux/hwmon.h>
38#include <linux/smp_lock.h>
38#include <linux/hwmon-vid.h> 39#include <linux/hwmon-vid.h>
39#include <linux/hwmon-sysfs.h> 40#include <linux/hwmon-sysfs.h>
40#include <linux/err.h> 41#include <linux/err.h>
@@ -1319,8 +1320,8 @@ static ssize_t watchdog_write(struct file *filp, const char __user *buf,
1319 return count; 1320 return count;
1320} 1321}
1321 1322
1322static int watchdog_ioctl(struct inode *inode, struct file *filp, 1323static long watchdog_ioctl(struct file *filp, unsigned int cmd,
1323 unsigned int cmd, unsigned long arg) 1324 unsigned long arg)
1324{ 1325{
1325 static struct watchdog_info ident = { 1326 static struct watchdog_info ident = {
1326 .options = WDIOF_KEEPALIVEPING | 1327 .options = WDIOF_KEEPALIVEPING |
@@ -1332,6 +1333,7 @@ static int watchdog_ioctl(struct inode *inode, struct file *filp,
1332 int val, ret = 0; 1333 int val, ret = 0;
1333 struct w83793_data *data = filp->private_data; 1334 struct w83793_data *data = filp->private_data;
1334 1335
1336 lock_kernel();
1335 switch (cmd) { 1337 switch (cmd) {
1336 case WDIOC_GETSUPPORT: 1338 case WDIOC_GETSUPPORT:
1337 if (!nowayout) 1339 if (!nowayout)
@@ -1385,7 +1387,7 @@ static int watchdog_ioctl(struct inode *inode, struct file *filp,
1385 default: 1387 default:
1386 ret = -ENOTTY; 1388 ret = -ENOTTY;
1387 } 1389 }
1388 1390 unlock_kernel();
1389 return ret; 1391 return ret;
1390} 1392}
1391 1393
@@ -1395,7 +1397,7 @@ static const struct file_operations watchdog_fops = {
1395 .open = watchdog_open, 1397 .open = watchdog_open,
1396 .release = watchdog_close, 1398 .release = watchdog_close,
1397 .write = watchdog_write, 1399 .write = watchdog_write,
1398 .ioctl = watchdog_ioctl, 1400 .unlocked_ioctl = watchdog_ioctl,
1399}; 1401};
1400 1402
1401/* 1403/*