layerscape: Fix multiple bugs in of_get_mac_address() changes
[openwrt/openwrt.git] / target / linux / layerscape / patches-5.4 / 701-net-0320-staging-fsl_ppfe-eth-use-memremap-to-map-RAM-area-us.patch
1 From 7872505a2194c9766c7986e761c0ae9bdd6e5e57 Mon Sep 17 00:00:00 2001
2 From: Calvin Johnson <calvin.johnson@nxp.com>
3 Date: Tue, 26 Mar 2019 16:52:22 +0530
4 Subject: [PATCH] staging: fsl_ppfe/eth: use memremap() to map RAM area used by
5 PFE
6
7 RAM area used by PFE should be mapped using memremap() instead of
8 directly traslating physical addr to virtual. This will ensure proper
9 checks are done before the area is used.
10
11 Signed-off-by: Calvin Johnson <calvin.johnson@nxp.com>
12 ---
13 drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c | 10 ++++++----
14 1 file changed, 6 insertions(+), 4 deletions(-)
15
16 --- a/drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c
17 +++ b/drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c
18 @@ -143,9 +143,10 @@ static int pfe_platform_probe(struct pla
19 pfe->ddr_phys_baseaddr = res.start;
20 pfe->ddr_size = resource_size(&res);
21
22 - pfe->ddr_baseaddr = phys_to_virt(res.start);
23 + pfe->ddr_baseaddr = memremap(res.start, resource_size(&res),
24 + MEMREMAP_WB);
25 if (!pfe->ddr_baseaddr) {
26 - pr_err("ioremap() ddr failed\n");
27 + pr_err("memremap() ddr failed\n");
28 rc = -ENOMEM;
29 goto err_ddr;
30 }
31 @@ -235,7 +236,7 @@ err_hif_irq:
32 iounmap(pfe->cbus_baseaddr);
33
34 err_axi:
35 - iounmap(pfe->ddr_baseaddr);
36 + memunmap(pfe->ddr_baseaddr);
37
38 err_ddr:
39 platform_set_drvdata(pdev, NULL);
40 @@ -259,7 +260,8 @@ static int pfe_platform_remove(struct pl
41 rc = pfe_remove(pfe);
42
43 iounmap(pfe->cbus_baseaddr);
44 - iounmap(pfe->ddr_baseaddr);
45 +
46 + memunmap(pfe->ddr_baseaddr);
47
48 platform_set_drvdata(pdev, NULL);
49