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: Alexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Alexey Khoroshilov 2017-01-14 01:52:51 +03:00 коммит произвёл Ulf Hansson
Родитель e28d6f0487
Коммит e81c022a00
1 изменённых файлов: 5 добавлений и 2 удалений

Просмотреть файл

@ -1437,11 +1437,14 @@ err:
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,
WBSD_DMA_SIZE, DMA_BIDIRECTIONAL);
kfree(host->dma_buffer);
}
kfree(host->dma_buffer);
if (host->dma >= 0)
free_dma(host->dma);