Commit ee4ad5d0 authored by Eddie James's avatar Eddie James Committed by Mark Brown

spi: fsi: Fix transfer returning without finalizing message

In the case that the SPI mux isn't set, the transfer_one_message
function returns without finalizing the message. This means that
the transfer never completes, resulting in hung tasks and an
eventual kernel panic. Fix it by finalizing the transfer in this
case.

Fixes: 9211a441 ("spi: fsi: Check mux status before transfers")
Signed-off-by: default avatarEddie James <eajames@linux.ibm.com>
Reviewed-by: default avatarJoel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20201110214736.25718-1-eajames@linux.ibm.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 766c6b63
...@@ -477,7 +477,7 @@ static int fsi_spi_transfer_one_message(struct spi_controller *ctlr, ...@@ -477,7 +477,7 @@ static int fsi_spi_transfer_one_message(struct spi_controller *ctlr,
rc = fsi_spi_check_mux(ctx->fsi, ctx->dev); rc = fsi_spi_check_mux(ctx->fsi, ctx->dev);
if (rc) if (rc)
return rc; goto error;
list_for_each_entry(transfer, &mesg->transfers, transfer_list) { list_for_each_entry(transfer, &mesg->transfers, transfer_list) {
struct fsi_spi_sequence seq; struct fsi_spi_sequence seq;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment