This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/media_tree.git tree:

Subject: [media] lirc_dev: avoid double mutex unlock
Author:  Mauro Carvalho Chehab <[email protected]>
Date:    Sat Feb 27 07:51:13 2016 -0300

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 <[email protected]>

 drivers/media/rc/lirc_dev.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=b64e10f3dfbfb2fdc21013b6b265a5e48cbb0071
diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
index 4de0e85af805..92ae1903c010 100644
--- a/drivers/media/rc/lirc_dev.c
+++ b/drivers/media/rc/lirc_dev.c
@@ -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;
 }

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to