Hi again, On Tue, Jan 29, 2013 at 11:34 AM, Per Fransson <per.fransson.ml@xxxxxxxxx> wrote: > Hi, > > For x86, crash avoids storing any '__crc_*' symbols. It should do the > same for ARM, right? Credit goes to Rabin Vincent for this patch, > unless you don't like it, in which case you can blame me. > > Another thing. The ARM kernel potentially includes a symbol 'PRRR' > with a value of 0xff0a81a8, defined in arch/arm/mm/proc-v7-2level.S. > The problem with this is that it's the symbol which ends up > st->symtable[st->symcnt-1] instead of '_end' which means a lot of > values will pass this check in in_ksymbol_range(): > > if ((value >= st->symtable[0].value) && > (value <= st->symtable[st->symcnt-1].value)) { > if ((st->flags & PERCPU_SYMS) && (value < st->first_ksymbol)) > return FALSE; > else > return TRUE; > } > > How would you prefer dealing with this? How about excluding any > symbols with values > '_end'? A KSYMS_END flag could be added to the > machdep->flags. Or just unsetting KSYM_START when '_end' is > encountered in verify_symbol(). > > Regards, > Per Like this (and you can blame this one on me). /Per
diff --git a/arm.c b/arm.c index a46f779..051d8de 100644 --- a/arm.c +++ b/arm.c @@ -605,6 +605,9 @@ arm_verify_symbol(const char *name, ulong value, char type) if (STREQ(name, "swapper_pg_dir")) machdep->flags |= KSYMS_START; + if (STREQ(name, "_end")) + machdep->flags &= ~KSYMS_START; + if (!name || !strlen(name) || !(machdep->flags & KSYMS_START)) return FALSE;
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility