Message ID | 20200709080457.26850-10-ovidiu.panait@windriver.com |
---|---|
State | Superseded |
Headers | show |
Series | [01/10] board_f: Introduce arch_setup_bdinfo initcall | expand |
On Thu, 9 Jul 2020 at 02:11, Ovidiu Panait <ovidiu.panait at windriver.com> wrote: > > blkcache_init manually relocates blkcache list pointers when > CONFIG_NEEDS_MANUAL_RELOC is enabled. However, it is called very late in > the boot sequence, which could be a problem if previous boot calls execute > blkcache operations with the non-relocated pointers. For example, mmc is > initialized earlier and might call blkcache_invalidate (in > mmc_select_hwpart()) when trying to load the environment from mmc via > env_load(). > > To fix this issue, move blkcache_init boot call earlier, before mmc gets > initialized. > > Cc: Angelo Durgehello <angelo.dureghello at timesys.com> > Signed-off-by: Ovidiu Panait <ovidiu.panait at windriver.com> > --- > > common/board_r.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) Reviewed-by: Simon Glass <sjg at chromium.org>
diff --git a/common/board_r.c b/common/board_r.c index 29d831d5eb..a3c26bb380 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -705,6 +705,9 @@ static init_fnc_t init_sequence_r[] = { initr_watchdog, #endif INIT_FUNC_WATCHDOG_RESET +#if defined(CONFIG_NEEDS_MANUAL_RELOC) && defined(CONFIG_BLOCK_CACHE) + blkcache_init, +#endif #ifdef CONFIG_NEEDS_MANUAL_RELOC initr_manual_reloc_cmdtable, #endif @@ -835,9 +838,6 @@ static init_fnc_t init_sequence_r[] = { #endif #if defined(CONFIG_PRAM) initr_mem, -#endif -#if defined(CONFIG_NEEDS_MANUAL_RELOC) && defined(CONFIG_BLOCK_CACHE) - blkcache_init, #endif run_main_loop, };
blkcache_init manually relocates blkcache list pointers when CONFIG_NEEDS_MANUAL_RELOC is enabled. However, it is called very late in the boot sequence, which could be a problem if previous boot calls execute blkcache operations with the non-relocated pointers. For example, mmc is initialized earlier and might call blkcache_invalidate (in mmc_select_hwpart()) when trying to load the environment from mmc via env_load(). To fix this issue, move blkcache_init boot call earlier, before mmc gets initialized. Cc: Angelo Durgehello <angelo.dureghello at timesys.com> Signed-off-by: Ovidiu Panait <ovidiu.panait at windriver.com> --- common/board_r.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)