Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ac02036 authored by Peng Fan's avatar Peng Fan Committed by Ulf Hansson
Browse files

mmc: sdhci check parameters before call dma_free_coherent



We should not call dma_free_coherent if host->adma_table is NULL,
otherwise may trigger panic.

Fixes: d1e49f77 ("mmc: sdhci: convert ADMA descriptors to a...")
Signed-off-by: default avatarPeng Fan <van.freenix@gmail.com>
Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 5027cd1e
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -2978,8 +2978,11 @@ int sdhci_add_host(struct sdhci_host *host)
						      GFP_KERNEL);
		host->align_buffer = kmalloc(host->align_buffer_sz, GFP_KERNEL);
		if (!host->adma_table || !host->align_buffer) {
			dma_free_coherent(mmc_dev(mmc), host->adma_table_sz,
					  host->adma_table, host->adma_addr);
			if (host->adma_table)
				dma_free_coherent(mmc_dev(mmc),
						  host->adma_table_sz,
						  host->adma_table,
						  host->adma_addr);
			kfree(host->align_buffer);
			pr_warn("%s: Unable to allocate ADMA buffers - falling back to standard DMA\n",
				mmc_hostname(mmc));