[SRU Oneiric/Precise][Quantal][PATCH] UBUNTU: SAUCE: Unlock the rc_dev lock when the raw device is missing

Herton Ronaldo Krzesinski herton.krzesinski at canonical.com
Tue Aug 7 13:50:51 UTC 2012

From: Douglas Bagnall <douglas at paradise.net.nz>

BugLink: http://bugs.launchpad.net/bugs/1015836

As pointed out by Ben Hutchings, after commit 720bb6436, the lock was
being taken and not released when an rc_dev has a NULL raw device.

Signed-off-by: Douglas Bagnall <douglas at paradise.net.nz>
Reported-by: Ben Hutchings <ben at decadent.org.uk>
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
 drivers/media/rc/rc-main.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Commit 720bb6436 missed an mutex_unlock on exit, thanks to Ben Hutchings
for pointing that out. Marked as "SAUCE" since it's not upstream yet,
but it should be included upstream.

diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index cabc19c..dcd45d0 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -778,9 +778,10 @@ static ssize_t show_protocols(struct device *device,
 	} else if (dev->raw) {
 		enabled = dev->raw->enabled_protocols;
 		allowed = ir_raw_get_allowed_protocols();
-	} else
+	} else {
+		mutex_unlock(&dev->lock);
 		return -ENODEV;
+	}
 	IR_dprintk(1, "allowed - 0x%llx, enabled - 0x%llx\n",
 		   (long long)allowed,
 		   (long long)enabled);

More information about the kernel-team mailing list