Hi XingYang, On Sun, Sep 22, 2024 at 5:16 AM <1127955419@xxxxxx> wrote: > > From: Li XingYang <1127955419@xxxxxx> > > The recently commit 6752571d8d78 fixed the issue where linux kernel with > 223b5e57d0d5 ("mm/execmem, arch: convert remaining overrides of module_alloc to execmem") > could not load crash, but it did not work in the following two situations: > 1: Kernel enables KASAN > 2: The kernel set CONFIG_RANDOMIZE_BASE but not set CONFIG_RANDOMIZE_MEMORY > > crash: seek error: kernel virtual address: ffffffff826bb418 type: "page_offset_base" > Thanks for the fix, looking good to me, ack. Thanks, Tao Liu > In both cases, kaslr_regions will not be exported in /proc/kallsyms, > but kaslr_get_random_long will still be exported in /proc/kallsyms. > So use kaslr_get_random_long instead of kaslr_degions > Determine whether to enable kalsr > > Signed-off-by: Li XingYang <1127955419@xxxxxx> > Signed-off-by: Zach Wade <zachwade.k@xxxxxxxxx> > --- > symbols.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/symbols.c b/symbols.c > index 69a1fbb..02359a4 100644 > --- a/symbols.c > +++ b/symbols.c > @@ -619,7 +619,7 @@ strip_symbol_end(const char *name, char *buf) > * or in /proc/kallsyms on a live system. > * > * Setting KASLR_CHECK will trigger a search for "module_load_offset" > - * or "kaslr_regions" during the initial symbol sort operation, and > + * or "kaslr_get_random_long" during the initial symbol sort operation, and > * if found, will set (RELOC_AUTO|KASLR). On live systems, the search > * is done here by checking /proc/kallsyms. > */ > @@ -646,7 +646,7 @@ kaslr_init(void) > st->_stext_vmlinux = UNINITIALIZED; > > if (ACTIVE() && /* Linux 3.15 */ > - ((symbol_value_from_proc_kallsyms("kaslr_regions") != BADVAL) || > + ((symbol_value_from_proc_kallsyms("kaslr_get_random_long") != BADVAL) || > (symbol_value_from_proc_kallsyms("module_load_offset") != BADVAL))) { > kt->flags2 |= (RELOC_AUTO|KASLR); > st->_stext_vmlinux = UNINITIALIZED; > @@ -14253,8 +14253,8 @@ numeric_forward(const void *P_x, const void *P_y) > st->_stext_vmlinux = valueof(y); > } > if (kt->flags2 & KASLR_CHECK) { > - if (STREQ(x->name, "kaslr_regions") || > - STREQ(y->name, "kaslr_regions") || > + if (STREQ(x->name, "kaslr_get_random_long") || > + STREQ(y->name, "kaslr_get_random_long") || > STREQ(x->name, "module_load_offset") || > STREQ(y->name, "module_load_offset")) { > kt->flags2 &= ~KASLR_CHECK; > -- > 2.46.1 > -- Crash-utility mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxxxxxx https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki