mmc: sdhci: always unmap a mapped data transfer in sdhci_post_req()
authorRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 26 Jan 2016 13:40:32 +0000 (13:40 +0000)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 29 Feb 2016 10:03:21 +0000 (11:03 +0100)
If the host cookie indicates that the data buffers of a request are
mapped at sdhci_post_req() time, always unmap the data buffers.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci.c

index 9321d4a..393a1b0 100644 (file)
@@ -2078,8 +2078,7 @@ static void sdhci_post_req(struct mmc_host *mmc, struct mmc_request *mrq,
        struct sdhci_host *host = mmc_priv(mmc);
        struct mmc_data *data = mrq->data;
 
-       if (data->host_cookie == COOKIE_GIVEN ||
-           data->host_cookie == COOKIE_MAPPED)
+       if (data->host_cookie != COOKIE_UNMAPPED)
                dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len,
                             data->flags & MMC_DATA_WRITE ?
                               DMA_TO_DEVICE : DMA_FROM_DEVICE);