From 5759b9d6d437eacbab474a076e332d1edab10009 Mon Sep 17 00:00:00 2001 From: Nicolin Chen Date: Mon, 15 Apr 2019 17:29:13 -0700 Subject: [PATCH] platform: nvadsp: Fix dma_free_coherent() call The parameters of dma_free_coherent() should be in order of: 1) Device pointer 2) Size 3) CPU virtual address 4) Device address However, the dma_free_coherent() here mixes with the size with the device address which will trigger kernel bugs. So this patch fixes the bug by exchanging those two. Bug 200444660 Change-Id: Ib0b7855be3868908a4fd59beb938f8bec9e6daee Signed-off-by: Nicolin Chen Reviewed-on: https://git-master.nvidia.com/r/2098218 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Krishna Reddy Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/platform/tegra/nvadsp/os.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/platform/tegra/nvadsp/os.c b/drivers/platform/tegra/nvadsp/os.c index e91f9540..5996973b 100644 --- a/drivers/platform/tegra/nvadsp/os.c +++ b/drivers/platform/tegra/nvadsp/os.c @@ -735,7 +735,7 @@ static void deallocate_memory_for_adsp_os(struct device *dev) struct iova_domain *iovad = &drv_data->iovad; void *va = nvadsp_da_to_va_mappings(priv.adsp_os_addr, priv.adsp_os_size); - dma_free_coherent(dev, priv.adsp_os_addr, va, priv.adsp_os_size); + dma_free_coherent(dev, priv.adsp_os_size, va, priv.adsp_os_addr); free_iova(iovad, iova_pfn(iovad, priv.adsp_os_addr)); put_iova_domain(iovad); #endif