Hi Lokesh, > > > On 3/24/2017 3:54 AM, Lukasz Majewski wrote: > > Up till this commit passing NULL as input parameter was allowed, > > but not handled properly. > > > > When one passed NULL to one of this function parameters, the code > > was executed causing data abort. > > > > However, what is more interesting, the abort was not caught because > > of code execution in HYP mode with masked CPSR A bit ("Imprecise > > Data Abort mask bit). The TI's AM57xx SoC switch to HYP mode with A > > bit masked in lowlevel_init.S due to SMC call. Such operation (by > > default) is performed in SoC ROM code. > > > > The problem would pop up when one: > > - Switch back to SVC mode after disabling LPAE support > > - Somebody enables A bit (by executing cpsie a asm instruction) > > > > and then the previously described exception would be caught. > > > > Signed-off-by: Lukasz Majewski <lu...@denx.de> > > --- > > arch/arm/cpu/armv7/omap-common/clocks-common.c | 10 ++++++---- > > This has been moved to arch/arm/mach-omap2/clocks-common.c > Please use the latest U-Boot.
Ok. I'm not working on a cutting-edge u-boot. > > > 1 file changed, 6 insertions(+), 4 deletions(-) > > > > diff --git a/arch/arm/cpu/armv7/omap-common/clocks-common.c > > b/arch/arm/cpu/armv7/omap-common/clocks-common.c index > > 097b8e3..157155a 100644 --- > > a/arch/arm/cpu/armv7/omap-common/clocks-common.c +++ > > b/arch/arm/cpu/armv7/omap-common/clocks-common.c @@ -822,27 +822,29 > > @@ void do_enable_clocks(u32 const *clk_domains, u32 i, max = 100; > > > > /* Put the clock domains in SW_WKUP mode */ > > - for (i = 0; (i < max) && clk_domains[i]; i++) { > > + for (i = 0; (i < max) && clk_domains && clk_domains[i]; > > i++) { > > Instead of checking for clk_domains every time, can we use max as > ARRAY_SIZE(clk_domains)? do_enable_clocks() accepts pointer to u32 as an argument (clk_domains). IMHO the ARRAY_SIZE(clk_domains) would be 1 - always. > Similarly other places. > > Thanks and regards, > Lokesh > > > enable_clock_domain(clk_domains[i], > > CD_CLKCTRL_CLKTRCTRL_SW_WKUP); > > } > > > > /* Clock modules that need to be put in HW_AUTO */ > > - for (i = 0; (i < max) && clk_modules_hw_auto[i]; i++) { > > + for (i = 0; (i < max) && clk_modules_hw_auto && > > + clk_modules_hw_auto[i]; i++) { > > enable_clock_module(clk_modules_hw_auto[i], > > MODULE_CLKCTRL_MODULEMODE_HW_AUTO, > > wait_for_enable); > > }; > > > > /* Clock modules that need to be put in SW_EXPLICIT_EN > > mode */ > > - for (i = 0; (i < max) && clk_modules_explicit_en[i]; i++) { > > + for (i = 0; (i < max) && clk_modules_explicit_en && > > + clk_modules_explicit_en[i]; i++) { > > enable_clock_module(clk_modules_explicit_en[i], > > MODULE_CLKCTRL_MODULEMODE_SW_EXPLICIT_EN, > > wait_for_enable); > > }; > > > > /* Put the clock domains in HW_AUTO mode now */ > > - for (i = 0; (i < max) && clk_domains[i]; i++) { > > + for (i = 0; (i < max) && clk_domains && clk_domains[i]; > > i++) { enable_clock_domain(clk_domains[i], > > CD_CLKCTRL_CLKTRCTRL_HW_AUTO); > > } > > Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot