----- Original Message ----- > Hi, > > Crash fails to start with current (4.4+) kernels. The following patch > fixes this. > > Regards, > Sebastian Sebastian, Appreciate the heads-up -- queued for crash-7.1.5: https://github.com/crash-utility/crash/commit/6f1f78e33474d00d5f261d7ed9d835c558b34d61 Thanks, Dave > ----->8 > > From ddd809812705ba36796c6750d12a12838b4106ec Mon Sep 17 00:00:00 2001 > From: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx> > Date: Tue, 19 Jan 2016 14:14:13 +0100 > Subject: [PATCH] Fix invalid structure member offset. > > Struct module was changed by kernel commit > 7523e4dc50 "module: use a structure to encapsulate layout." > > Fix the offsets to handle the following crash error: > > crash: invalid structure member offset: module_init_text_size > FILE: symbols.c LINE: 1668 FUNCTION: store_module_symbols_v2() > > [../crash/crash] error trace: 10062e92 => 10109812 => 1014f16e => 101813ac > > 101813ac: OFFSET_verify+124 > 1014f16e: store_module_symbols_v2+2182 > 10109812: module_init+4386 > 10062e92: main_loop+410 > > Signed-off-by: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx> > --- > kernel.c | 49 +++++++++++++++++++++++++++++++++++++++---------- > 1 file changed, 39 insertions(+), 10 deletions(-) > > diff --git a/kernel.c b/kernel.c > index 2d4188a..5ce2fb9 100644 > --- a/kernel.c > +++ b/kernel.c > @@ -3291,16 +3291,45 @@ module_init(void) > MEMBER_OFFSET_INIT(module_gpl_syms, "module", "gpl_syms"); > MEMBER_OFFSET_INIT(module_num_gpl_syms, "module", > "num_gpl_syms"); > - MEMBER_OFFSET_INIT(module_module_core, "module", > - "module_core"); > - MEMBER_OFFSET_INIT(module_core_size, "module", > - "core_size"); > - MEMBER_OFFSET_INIT(module_core_text_size, "module", > - "core_text_size"); > - MEMBER_OFFSET_INIT(module_module_init, "module", "module_init"); > - MEMBER_OFFSET_INIT(module_init_size, "module", "init_size"); > - MEMBER_OFFSET_INIT(module_init_text_size, "module", > - "init_text_size"); > + > + if (MEMBER_EXISTS("module", "module_core")) { > + MEMBER_OFFSET_INIT(module_core_size, "module", > + "core_size"); > + MEMBER_OFFSET_INIT(module_init_size, "module", > + "init_size"); > + > + MEMBER_OFFSET_INIT(module_core_text_size, "module", > + "core_text_size"); > + MEMBER_OFFSET_INIT(module_init_text_size, "module", > + "init_text_size"); > + > + MEMBER_OFFSET_INIT(module_module_core, "module", > + "module_core"); > + MEMBER_OFFSET_INIT(module_module_init, "module", > + "module_init"); > + } else { > + ASSIGN_OFFSET(module_core_size) = > + MEMBER_OFFSET("module", "core_layout") + > + MEMBER_OFFSET("module_layout", "size"); > + ASSIGN_OFFSET(module_init_size) = > + MEMBER_OFFSET("module", "init_layout") + > + MEMBER_OFFSET("module_layout", "size"); > + > + ASSIGN_OFFSET(module_core_text_size) = > + MEMBER_OFFSET("module", "core_layout") + > + MEMBER_OFFSET("module_layout", "text_size"); > + ASSIGN_OFFSET(module_init_text_size) = > + MEMBER_OFFSET("module", "init_layout") + > + MEMBER_OFFSET("module_layout", "text_size"); > + > + ASSIGN_OFFSET(module_module_core) = > + MEMBER_OFFSET("module", "core_layout") + > + MEMBER_OFFSET("module_layout", "base"); > + ASSIGN_OFFSET(module_module_init) = > + MEMBER_OFFSET("module", "init_layout") + > + MEMBER_OFFSET("module_layout", "base"); > + } > + > MEMBER_OFFSET_INIT(module_percpu, "module", "percpu"); > > /* > -- > 2.3.0 > > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility