On Thu, 2020-02-06 at 10:58 +0800, Jason Yan wrote: > The original kernel still exists in the memory, clear it now. > > Signed-off-by: Jason Yan <yanaijie@xxxxxxxxxx> > Cc: Scott Wood <oss@xxxxxxxxxxxx> > Cc: Diana Craciun <diana.craciun@xxxxxxx> > Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > Cc: Christophe Leroy <christophe.leroy@xxxxxx> > Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> > Cc: Paul Mackerras <paulus@xxxxxxxxx> > Cc: Nicholas Piggin <npiggin@xxxxxxxxx> > Cc: Kees Cook <keescook@xxxxxxxxxxxx> > --- > arch/powerpc/mm/nohash/kaslr_booke.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/mm/nohash/kaslr_booke.c > b/arch/powerpc/mm/nohash/kaslr_booke.c > index c6f5c1db1394..ed1277059368 100644 > --- a/arch/powerpc/mm/nohash/kaslr_booke.c > +++ b/arch/powerpc/mm/nohash/kaslr_booke.c > @@ -378,8 +378,10 @@ notrace void __init kaslr_early_init(void *dt_ptr, > phys_addr_t size) > unsigned int *__kaslr_offset = (unsigned int *)(KERNELBASE + 0x58); > unsigned int *__run_at_load = (unsigned int *)(KERNELBASE + 0x5c); > > - if (*__run_at_load == 1) > + if (*__run_at_load == 1) { > + kaslr_late_init(); > return; > + } What if you're here because kexec set __run_at_load (or CONFIG_RELOCATABLE_TEST is enabled), not because kaslr happened? -Scott