Commit e81c022a authored by Alexey Khoroshilov's avatar Alexey Khoroshilov Committed by Ulf Hansson

mmc: wbsd: safer check if dma_addr is valid DMA address

host->dma_addr can store a value that is not returned by the DMA API,
so it is safer to check if is a valid DMA address indirectly.
Signed-off-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent e28d6f04
...@@ -1437,11 +1437,14 @@ static void wbsd_request_dma(struct wbsd_host *host, int dma) ...@@ -1437,11 +1437,14 @@ static void wbsd_request_dma(struct wbsd_host *host, int dma)
static void wbsd_release_dma(struct wbsd_host *host) static void wbsd_release_dma(struct wbsd_host *host)
{ {
if (!dma_mapping_error(mmc_dev(host->mmc), host->dma_addr)) { /*
* host->dma_addr is valid here iff host->dma_buffer is not NULL.
*/
if (host->dma_buffer) {
dma_unmap_single(mmc_dev(host->mmc), host->dma_addr, dma_unmap_single(mmc_dev(host->mmc), host->dma_addr,
WBSD_DMA_SIZE, DMA_BIDIRECTIONAL); WBSD_DMA_SIZE, DMA_BIDIRECTIONAL);
kfree(host->dma_buffer);
} }
kfree(host->dma_buffer);
if (host->dma >= 0) if (host->dma >= 0)
free_dma(host->dma); free_dma(host->dma);
......
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