ixj: Push BKL into driver and wrap ioctls
PATCH 1/1 ixj: Push BKL into driver and wrap ioctls
Signed-off-by Alan Cox <[email protected]>
drivers/telephony/ixj.c +13 -4
@@ -6095,15 +6095,15 @@ static int capabilities_check(IXJ *j, struct phone_capability *pcreq)return retval; } -static int ixj_ioctl (struct inode *inode,struct file *file_p,unsigned int cmd,unsigned long arg) +static long do_ixj_ioctl (struct file *file_p,unsigned int cmd,unsigned long arg) {IXJ_TONE ti;IXJ_FILTER jf;IXJ_FILTER_RAW jfr;void __user *argp = (void __user *)arg; - -unsigned int raise, mant; +struct inode *inode = file_p->f_path.dentry->d_inode;unsigned int minor =iminor (inode); +unsigned int raise, mant;int board =NUM (inode);IXJ *j =get_ixj (NUM (inode));
@@ -6661,6 +6661,15 @@ static int ixj_ioctl(struct inode *inode, struct file *file_p, unsigned int cmd,return retval; } +static long ixj_ioctl (struct file *file_p,unsigned int cmd,unsigned long arg) +{ +long ret; +lock_kernel (); + ret =do_ixj_ioctl (file_p, cmd, arg); +unlock_kernel (); +return ret; +} +static int ixj_fasync (int fd,struct file *file_p,int mode) {IXJ *j =get_ixj (NUM (file_p->f_path.dentry->d_inode));
@@ -6674,7 +6683,7 @@ static const struct file_operations ixj_fops = .read = ixj_enhanced_read, .write = ixj_enhanced_write, .poll = ixj_poll, - .ioctl = ixj_ioctl, + .unlocked_ioctl = ixj_ioctl, .release = ixj_release, .fasync = ixj_fasync };