summary refs log tree commit diff
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-08-09 17:45:33 +0100
committerMark Brown <broonie@kernel.org>2016-08-09 17:45:33 +0100
commit764f21665a12e99f03124b4c8de722cdbff92213 (patch)
tree36fe8040e861bbd43ae060a87d607e4de48c8ae5 /drivers/spi/spi.c
parent29b4817d4018df78086157ea3a55c1d9424a7cfc (diff)
downloadlinux-764f21665a12e99f03124b4c8de722cdbff92213.tar.gz
spi: Drop io_mutex in error paths
A couple of error paths were missing drops of io_mutex.

Reported-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r--drivers/spi/spi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 51ad42fad567..57179d5eea9a 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -1159,6 +1159,7 @@ static void __spi_pump_messages(struct spi_master *master, bool in_kthread)
 		if (ret < 0) {
 			dev_err(&master->dev, "Failed to power device: %d\n",
 				ret);
+			mutex_unlock(&master->io_mutex);
 			return;
 		}
 	}
@@ -1174,6 +1175,7 @@ static void __spi_pump_messages(struct spi_master *master, bool in_kthread)
 
 			if (master->auto_runtime_pm)
 				pm_runtime_put(master->dev.parent);
+			mutex_unlock(&master->io_mutex);
 			return;
 		}
 	}