From e8c751f5a0650820e2198f761139a06be2654eba Mon Sep 17 00:00:00 2001 From: Kyungwoo Kang Date: Tue, 27 Mar 2018 14:50:37 +0900 Subject: [PATCH] [COMMON] spi: Add spi_finalize_current_message when prepapre_transfer_hardware was failed This patch adds spi_finalize_current_message to avoid mutex dead lock situatoin. Change-Id: I3d1e82522b08d795a743c5a6a5df517f9b54e21e Signed-off-by: Kyungwoo Kang --- drivers/spi/spi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 3ff0ee88c467..b8623db3a7ba 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -1230,10 +1230,15 @@ static void __spi_pump_messages(struct spi_controller *ctlr, bool in_kthread) ret = ctlr->prepare_transfer_hardware(ctlr); if (ret) { dev_err(&ctlr->dev, - "failed to prepare transfer hardware\n"); + "failed to prepare transfer hardware: %d\n", + ret); if (ctlr->auto_runtime_pm) pm_runtime_put(ctlr->dev.parent); + + ctlr->cur_msg->status = ret; + spi_finalize_current_message(ctlr); + mutex_unlock(&ctlr->io_mutex); return; } -- 2.20.1