From: Christian Lütke-Stetzkamp Date: Wed, 4 Apr 2018 20:15:41 +0000 (+0200) Subject: staging: mt7621-mmc: Fix dma_alloc_coherent should get device as first param X-Git-Tag: v4.18-rc1~83^2~626 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=92707841053dba22d48b5ec9bd65dbeb2d4ad6b6;p=linux.git staging: mt7621-mmc: Fix dma_alloc_coherent should get device as first param The dma_alloc_coherent (and also dma_free_coherent) should get the device, the dma memory is allocated for as the first parameter. Signed-off-by: Christian Lütke-Stetzkamp Reviewed-by: NeilBrown Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/mt7621-mmc/sd.c b/drivers/staging/mt7621-mmc/sd.c index 695db4db27d3..70e64cfad5ab 100644 --- a/drivers/staging/mt7621-mmc/sd.c +++ b/drivers/staging/mt7621-mmc/sd.c @@ -2779,8 +2779,12 @@ static int msdc_drv_probe(struct platform_device *pdev) mmc_dev(mmc)->dma_mask = NULL; /* using dma_alloc_coherent*/ /* todo: using 1, for all 4 slots */ - host->dma.gpd = dma_alloc_coherent(NULL, MAX_GPD_NUM * sizeof(struct gpd), &host->dma.gpd_addr, GFP_KERNEL); - host->dma.bd = dma_alloc_coherent(NULL, MAX_BD_NUM * sizeof(struct bd), &host->dma.bd_addr, GFP_KERNEL); + host->dma.gpd = dma_alloc_coherent(&pdev->dev, + MAX_GPD_NUM * sizeof(struct gpd), + &host->dma.gpd_addr, GFP_KERNEL); + host->dma.bd = dma_alloc_coherent(&pdev->dev, + MAX_BD_NUM * sizeof(struct bd), + &host->dma.bd_addr, GFP_KERNEL); if (!host->dma.gpd || !host->dma.bd) { ret = -ENOMEM; goto release_mem; @@ -2835,10 +2839,10 @@ static int msdc_drv_probe(struct platform_device *pdev) release_mem: if (host->dma.gpd) - dma_free_coherent(NULL, MAX_GPD_NUM * sizeof(struct gpd), + dma_free_coherent(&pdev->dev, MAX_GPD_NUM * sizeof(struct gpd), host->dma.gpd, host->dma.gpd_addr); if (host->dma.bd) - dma_free_coherent(NULL, MAX_BD_NUM * sizeof(struct bd), + dma_free_coherent(&pdev->dev, MAX_BD_NUM * sizeof(struct bd), host->dma.bd, host->dma.bd_addr); host_free: mmc_free_host(mmc); @@ -2871,8 +2875,10 @@ static int msdc_drv_remove(struct platform_device *pdev) #endif free_irq(host->irq, host); - dma_free_coherent(NULL, MAX_GPD_NUM * sizeof(struct gpd), host->dma.gpd, host->dma.gpd_addr); - dma_free_coherent(NULL, MAX_BD_NUM * sizeof(struct bd), host->dma.bd, host->dma.bd_addr); + dma_free_coherent(&pdev->dev, MAX_GPD_NUM * sizeof(struct gpd), + host->dma.gpd, host->dma.gpd_addr); + dma_free_coherent(&pdev->dev, MAX_BD_NUM * sizeof(struct bd), + host->dma.bd, host->dma.bd_addr); mmc_free_host(host->mmc);