aboutsummaryrefslogtreecommitdiff
path: root/net/wanrouter/wanmain.c
diff options
context:
space:
mode:
authorAlan Cox <alan@redhat.com>2008-05-25 23:41:40 -0700
committerDavid S. Miller <davem@davemloft.net>2008-05-25 23:41:40 -0700
commit866988edacebb6f1982266b51fc344c969f481ec (patch)
treee4e0761165d58a83372eeb8d21269d63b0d437e5 /net/wanrouter/wanmain.c
parentf3ff8a4d80e8ec867caf60b120c65db21f820e6d (diff)
wanrouter: Push down BKL
Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/wanrouter/wanmain.c')
-rw-r--r--net/wanrouter/wanmain.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/wanrouter/wanmain.c b/net/wanrouter/wanmain.c
index 9ab31a3ce3a..b210a88d096 100644
--- a/net/wanrouter/wanmain.c
+++ b/net/wanrouter/wanmain.c
@@ -350,9 +350,9 @@ __be16 wanrouter_type_trans(struct sk_buff *skb, struct net_device *dev)
* o execute requested action or pass command to the device driver
*/
-int wanrouter_ioctl(struct inode *inode, struct file *file,
- unsigned int cmd, unsigned long arg)
+long wanrouter_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
+ struct inode *inode = file->f_path.dentry->d_inode;
int err = 0;
struct proc_dir_entry *dent;
struct wan_device *wandev;
@@ -372,6 +372,7 @@ int wanrouter_ioctl(struct inode *inode, struct file *file,
if (wandev->magic != ROUTER_MAGIC)
return -EINVAL;
+ lock_kernel();
switch (cmd) {
case ROUTER_SETUP:
err = wanrouter_device_setup(wandev, data);
@@ -403,6 +404,7 @@ int wanrouter_ioctl(struct inode *inode, struct file *file,
err = wandev->ioctl(wandev, cmd, arg);
else err = -EINVAL;
}
+ unlock_kernel();
return err;
}