Message ID | CAOMZO5AeJVRL3VhLdYPtAq7-9+Dh3o=ntwhqYOrZZeR7TbBDyQ@mail.gmail.com |
---|---|
State | New |
Headers | show |
On Wed, Jul 10, 2013 at 1:53 PM, Fabio Estevam <festevam@gmail.com> wrote: > Hi Sascha, > > On Tue, Jul 9, 2013 at 3:20 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote: > >> l2x0_base is passed to l2x0_init which uses it for the outer cache >> maintenance operations. I wonder this doesn't crash your kernel. > > l2x0_init() is called from arch/arm/mach-imx/mm-imx3.c first and then > from arch/arm/mm/cache-l2x0.c > later. > > Why do we need to call it twice? Understood now, actually l2x0_init() is only called in arch/arm/mm/cache-l2x0.c for the dt case. So all is fine with the current code.
diff --git a/arch/arm/mach-imx/mm-imx3.c b/arch/arm/mach-imx/mm-imx3.c index 0884ca9..94f3b4f 100644 --- a/arch/arm/mach-imx/mm-imx3.c +++ b/arch/arm/mach-imx/mm-imx3.c @@ -85,7 +85,6 @@ static void __iomem *imx3_ioremap_caller(phys_addr_t phys_addr, size_t size, static void __init imx3_init_l2x0(void) { #ifdef CONFIG_CACHE_L2X0 - void __iomem *l2x0_base; void __iomem *clkctl_base;