spi: spi-zynqmp-gqspi: Fix missing unlock on error in zynqmp_qspi_exec_op()
authorWei Yongjun <weiyongjun1@huawei.com>
Mon, 12 Apr 2021 16:00:25 +0000 (16:00 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 12 Apr 2021 16:07:39 +0000 (17:07 +0100)
Add the missing unlock before return from function zynqmp_qspi_exec_op()
in the error handling case.

Fixes: a0f65be6e880 ("spi: spi-zynqmp-gqspi: add mutex locking for exec_op")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Link: https://lore.kernel.org/r/20210412160025.194171-1-weiyongjun1@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-zynqmp-gqspi.c

index 036d8ae..408e348 100644 (file)
@@ -965,8 +965,10 @@ static int zynqmp_qspi_exec_op(struct spi_mem *mem,
 
        if (op->cmd.opcode) {
                tmpbuf = kzalloc(op->cmd.nbytes, GFP_KERNEL | GFP_DMA);
-               if (!tmpbuf)
+               if (!tmpbuf) {
+                       mutex_unlock(&xqspi->op_lock);
                        return -ENOMEM;
+               }
                tmpbuf[0] = op->cmd.opcode;
                reinit_completion(&xqspi->data_completion);
                xqspi->txbuf = tmpbuf;