From eda70f1dfc9e5165b9413dbf1ccb5c108f26a18c Mon Sep 17 00:00:00 2001
From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Fri, 13 Apr 2012 16:39:06 +0300
Subject: w1: w1_ds28e04: unlock on error path in w1_f1C_write_pio()

We should unlock here before returning.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/w1/slaves/w1_ds28e04.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

(limited to 'drivers/w1')

diff --git a/drivers/w1/slaves/w1_ds28e04.c b/drivers/w1/slaves/w1_ds28e04.c
index f652db3782bf..4aa1aa90480d 100644
--- a/drivers/w1/slaves/w1_ds28e04.c
+++ b/drivers/w1/slaves/w1_ds28e04.c
@@ -309,8 +309,10 @@ static ssize_t w1_f1C_write_pio(struct file *filp, struct kobject *kobj,
 	mutex_lock(&sl->master->mutex);
 
 	/* Write the PIO data */
-	if (w1_reset_select_slave(sl))
+	if (w1_reset_select_slave(sl)) {
+		mutex_unlock(&sl->master->mutex);
 		return -1;
+	}
 
 	/* set bit 7..2 to value '1' */
 	*buf = *buf | 0xFC;
-- 
cgit v1.2.3-70-g09d2