staging: mt7621-mmc: Fix calculation typo in msdc_init_gpd_bd
authorChristian Lütke-Stetzkamp <christian@lkamp.de>
Wed, 25 Apr 2018 06:43:18 +0000 (08:43 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Apr 2018 13:36:20 +0000 (15:36 +0200)
When refactoring the function msdc_init_gpd_bd, an error in the
calculation of the bd.next address was introduced. The offset has to
be added to the base address, not multiplied.

Fixes: 8f2395586cf0 ("staging: mt7621-mmc: Refactor msdc_init_gpd_bd")
Reported-by: NeilBrown <neil@brown.name>
Signed-off-by: Christian Lütke-Stetzkamp <christian@lkamp.de>
Tested-by: NeilBrown <neil@brown.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/mt7621-mmc/sd.c

index ae70f9d..a003f83 100644 (file)
@@ -2505,7 +2505,7 @@ static void msdc_init_gpd_bd(struct msdc_host *host, struct msdc_dma *dma)
 
        memset(bd, 0, sizeof(struct bd) * MAX_BD_NUM);
        for (i = 0; i < (MAX_BD_NUM - 1); i++)
-               bd[i].next = (void *)(dma->bd_addr * sizeof(*bd) * (i + 1));
+               bd[i].next = (void *)(dma->bd_addr + sizeof(*bd) * (i + 1));
 }
 
 static int msdc_drv_probe(struct platform_device *pdev)