Patch "mmc: sdhci: Fix unexpected data interrupt handling" has been added to the 4.8-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
mmc: sdhci: Fix unexpected data interrupt handling
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mmc-sdhci-fix-unexpected-data-interrupt-handling.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
69b962a65a547690a356f9f76bc4f53db538ac49Mon Sep 17 00:00:00 2001
From: Adrian Hunter <[email protected]>
Date: Wed, 2 Nov 2016 15:49:09 +0200
Subject: mmc: sdhci: Fix unexpected data interrupt handling
From: Adrian Hunter <[email protected]>
commit 69b962a65a547690a356f9f76bc4f53db538ac49 upstream.
In the busy response case (i.e. !host->data), an unexpected data interrupt would result in clearing the data command as though it had completed but without informing the upper layers and thus resulting in a hang. Fix by only clearing the data command for data interrupts that are expected.
--- drivers/mmc/host/sdhci.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
drivers/mmc/host/sdhci.c +2 -3
@@ -2509,9 +2509,6 @@ static void sdhci_data_irq(struct sdhci_if (!host->data) {struct mmc_command *data_cmd = host->data_cmd; -if (data_cmd) - host->data_cmd =NULL ; -/* * The "data complete" interrupt is also used to * indicate that a busy state has ended. See comment
@@ -2519,11 +2516,13 @@ static void sdhci_data_irq(struct sdhci_*/ if (data_cmd && (data_cmd->flags &MMC_RSP_BUSY )) {if (intmask &SDHCI_INT_DATA_TIMEOUT ) { + host->data_cmd =NULL ; data_cmd->error = -ETIMEDOUT ;sdhci_finish_mrq (host, data_cmd->mrq);return ; }if (intmask &SDHCI_INT_DATA_END ) { + host->data_cmd =NULL ;/* * Some cards handle busy-end interrupt * before the command completed, so make
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/mmc-sdhci-fix-cmd-line-reset-interfering-with-ongoing-data-transfer.patch queue-4.8/mmc-sdhci-fix-unexpected-data-interrupt-handling.patch