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:
Родитель
e28d6f0487
Коммит
e81c022a00
|
@ -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);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче