diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
index 136d71eb6f27e6523569f4dbb2a7176c7e1f13b0..e12d962a289f61823b673098fce9e49dc8da94f7 100644
--- a/drivers/spi/spi-ti-qspi.c
+++ b/drivers/spi/spi-ti-qspi.c
@@ -376,6 +376,7 @@ static int ti_qspi_start_transfer_one(struct spi_master *master,
 		ret = qspi_transfer_msg(qspi, t);
 		if (ret) {
 			dev_dbg(qspi->dev, "transfer message failed\n");
+			mutex_unlock(&qspi->list_lock);
 			return -EINVAL;
 		}