X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=net%2Fwanrouter%2Fwanmain.c;h=b210a88d09608f5d776bf4e5196fcfe71adf7ad0;hb=b1cbefe5d5fc2d4a6109961d914027172ce8e152;hp=849cc06bd9141a62da44061a230e7bc70c472761;hpb=3e2ce4dae98f6b246eaeb12833914d22fd83e31d;p=mv-sheeva.git diff --git a/net/wanrouter/wanmain.c b/net/wanrouter/wanmain.c index 849cc06bd91..b210a88d096 100644 --- a/net/wanrouter/wanmain.c +++ b/net/wanrouter/wanmain.c @@ -46,7 +46,6 @@ #include #include /* return codes */ #include -#include #include /* support for loadable modules */ #include /* kmalloc(), kfree() */ #include @@ -351,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; @@ -373,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); @@ -404,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; }