[media] lirc_dev: avoid double mutex unlock
We can only unlock if mutex_lock() succeeds. Fixes the following warning: drivers/media/rc/lirc_dev.c:535 lirc_dev_fop_close() error: double unlock 'mutex:&lirc_dev_lock' Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
fe28f5de11
commit
b64e10f3df
|
@ -506,6 +506,7 @@ int lirc_dev_fop_close(struct inode *inode, struct file *file)
|
|||
{
|
||||
struct irctl *ir = irctls[iminor(inode)];
|
||||
struct cdev *cdev;
|
||||
int ret;
|
||||
|
||||
if (!ir) {
|
||||
printk(KERN_ERR "%s: called with invalid irctl\n", __func__);
|
||||
|
@ -516,7 +517,8 @@ int lirc_dev_fop_close(struct inode *inode, struct file *file)
|
|||
|
||||
dev_dbg(ir->d.dev, LOGHEAD "close called\n", ir->d.name, ir->d.minor);
|
||||
|
||||
WARN_ON(mutex_lock_killable(&lirc_dev_lock));
|
||||
ret = mutex_lock_killable(&lirc_dev_lock);
|
||||
WARN_ON(ret);
|
||||
|
||||
rc_close(ir->d.rdev);
|
||||
|
||||
|
@ -532,7 +534,8 @@ int lirc_dev_fop_close(struct inode *inode, struct file *file)
|
|||
kfree(ir);
|
||||
}
|
||||
|
||||
mutex_unlock(&lirc_dev_lock);
|
||||
if (!ret)
|
||||
mutex_unlock(&lirc_dev_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue