spi: Drop io_mutex in error paths
authorMark Brown <broonie@kernel.org>
Tue, 9 Aug 2016 16:45:33 +0000 (17:45 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 9 Aug 2016 16:45:33 +0000 (17:45 +0100)
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>
drivers/spi/spi.c

index 51ad42f..57179d5 100644 (file)
@@ -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;
                }
        }