From 7872505a2194c9766c7986e761c0ae9bdd6e5e57 Mon Sep 17 00:00:00 2001 From: Calvin Johnson Date: Tue, 26 Mar 2019 16:52:22 +0530 Subject: [PATCH] staging: fsl_ppfe/eth: use memremap() to map RAM area used by PFE RAM area used by PFE should be mapped using memremap() instead of directly traslating physical addr to virtual. This will ensure proper checks are done before the area is used. Signed-off-by: Calvin Johnson --- drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- a/drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c +++ b/drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c @@ -148,9 +148,10 @@ static int pfe_platform_probe(struct pla pfe->ddr_phys_baseaddr = res.start; pfe->ddr_size = resource_size(&res); - pfe->ddr_baseaddr = phys_to_virt(res.start); + pfe->ddr_baseaddr = memremap(res.start, resource_size(&res), + MEMREMAP_WB); if (!pfe->ddr_baseaddr) { - pr_err("ioremap() ddr failed\n"); + pr_err("memremap() ddr failed\n"); rc = -ENOMEM; goto err_ddr; } @@ -240,7 +241,7 @@ err_hif_irq: iounmap(pfe->cbus_baseaddr); err_axi: - iounmap(pfe->ddr_baseaddr); + memunmap(pfe->ddr_baseaddr); err_ddr: platform_set_drvdata(pdev, NULL); @@ -264,7 +265,8 @@ static int pfe_platform_remove(struct pl rc = pfe_remove(pfe); iounmap(pfe->cbus_baseaddr); - iounmap(pfe->ddr_baseaddr); + + memunmap(pfe->ddr_baseaddr); platform_set_drvdata(pdev, NULL);