auerwald: Push down the BKL into the driver
PATCH 1/1 auerwald: Push down the BKL into the driver
Also fix the unknown ioctl return code
Signed-off-by Alan Cox <[email protected]>
drivers/usb/misc/auerswald.c +6 -4
@@ -1421,7 +1421,8 @@ ofail: mutex_unlock(&cp->mutex);/* IOCTL functions */ -static int auerchar_ioctl (struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg) +static long auerchar_ioctl (struct file *file,unsigned int cmd, +unsigned long arg) {pauerchar_t ccp = (pauerchar_t ) file->private_data;int ret =0 ;
@@ -1452,7 +1453,7 @@ static int auerchar_ioctl (struct inode *inode, struct file *file, unsigned intmutex_unlock (&ccp->mutex);return -ENODEV ; } - +lock_kernel ();switch (cmd) {/* return != 0 if Transmitt channel ready to send */
@@ -1547,9 +1548,10 @@ static int auerchar_ioctl (struct inode *inode, struct file *file, unsigned intdefault :dbg ("IOCTL_AU_UNKNOWN" ); - ret = -ENOIOCTLCMD ; + ret = -ENOTTY ;break ; } +unlock_kernel ();/* release the mutexes */ mutex_unlock (&cp->mutex);mutex_unlock (&ccp->mutex);
@@ -1860,7 +1862,7 @@ static const struct file_operations auerswald_fops = .llseek = no_llseek, .read = auerchar_read, .write = auerchar_write, - .ioctl = auerchar_ioctl, + .unlocked_ioctl = auerchar_ioctl, .open = auerchar_open, .release = auerchar_release, };