diff options
author | Alan Cox <alan@linux.intel.com> | 2009-10-14 05:22:24 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-10-18 18:53:43 -0700 |
commit | 2395f0e862aadf7d82d5a95cb2e8fdade8d7970d (patch) | |
tree | d0bdfef400507b0b4adb4601edca8fdf87ceb80c | |
parent | 8edf19c2fe028563fc6ea9cb1995b8ee4172d4b6 (diff) | |
download | blackbird-op-linux-2395f0e862aadf7d82d5a95cb2e8fdade8d7970d.tar.gz blackbird-op-linux-2395f0e862aadf7d82d5a95cb2e8fdade8d7970d.zip |
cosa: Kill off the use of the old ioctl path
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/wan/cosa.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c index 66360a2a14c2..2eceb1a24df2 100644 --- a/drivers/net/wan/cosa.c +++ b/drivers/net/wan/cosa.c @@ -296,8 +296,8 @@ static ssize_t cosa_write(struct file *file, static unsigned int cosa_poll(struct file *file, poll_table *poll); static int cosa_open(struct inode *inode, struct file *file); static int cosa_release(struct inode *inode, struct file *file); -static int cosa_chardev_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, unsigned long arg); +static long cosa_chardev_ioctl(struct file *file, unsigned int cmd, + unsigned long arg); #ifdef COSA_FASYNC_WORKING static int cosa_fasync(struct inode *inode, struct file *file, int on); #endif @@ -308,7 +308,7 @@ static const struct file_operations cosa_fops = { .read = cosa_read, .write = cosa_write, .poll = cosa_poll, - .ioctl = cosa_chardev_ioctl, + .unlocked_ioctl = cosa_chardev_ioctl, .open = cosa_open, .release = cosa_release, #ifdef COSA_FASYNC_WORKING @@ -1203,12 +1203,18 @@ static int cosa_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) return hdlc_ioctl(dev, ifr, cmd); } -static int cosa_chardev_ioctl(struct inode *inode, struct file *file, - unsigned int cmd, unsigned long arg) +static long cosa_chardev_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) { struct channel_data *channel = file->private_data; - struct cosa_data *cosa = channel->cosa; - return cosa_ioctl_common(cosa, channel, cmd, arg); + struct cosa_data *cosa; + long ret; + + lock_kernel(); + cosa = channel->cosa; + ret = cosa_ioctl_common(cosa, channel, cmd, arg); + unlock_kernel(); + return ret; } |