]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: mt7621-mmc: Fix dma_alloc_coherent should get device as first param
authorChristian Lütke-Stetzkamp <christian@lkamp.de>
Wed, 4 Apr 2018 20:15:41 +0000 (22:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Apr 2018 13:34:03 +0000 (15:34 +0200)
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 <christian@lkamp.de>
Reviewed-by: NeilBrown <neil@brown.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/mt7621-mmc/sd.c

index 695db4db27d35210d77beb8f1494a899c894c837..70e64cfad5ab493371f5a7ecf96b9c3863f89aee 100644 (file)
@@ -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);