* Dave Anderson <anderson@xxxxxxxxxx> [2007-10-29 20:34]: > > Dave Anderson <anderson redhat com> [2007-10-22 15:32]: > >> Troy Heber wrote: > >>> On 10/19/07 12:23, Dave Anderson wrote: > >>>> So my biggest worry would be if this somehow breaks > >>>> backwards-compatibility, but I'm presuming that you took > >>>> that into account. But anyway, I leave this all up > >>>> to Troy. > >>> I just did a quick sanity check on a couple of old IA64 LKCD dumps and > >>> everything seems to work, so I'm happy. > >>> Troy > > > > Troy, thanks for checking this! > > > >> Bernhard, can you post a cleaned-up patch for queueing? > > > > Here it is (attached). I didn't see any warnings in the crash code > > with 'make warn' now. I have used your own definition of offsetof() > > but moved it into the header file. > > My biggest worry came true, so I'm going to have to NAK > this patch in its current state. I'm sorry. Unfortunately, I have no old dumps to test here. Only SLES9 and SLES10, and that's v8/v9. This patch should fix this. --- defs.h | 3 ++- lkcd_common.c | 12 ++++++++++++ lkcd_v8.c | 6 +++--- 3 files changed, 17 insertions(+), 4 deletions(-) --- a/defs.h +++ b/defs.h @@ -3845,7 +3845,7 @@ int get_lkcd_regs_for_cpu_arch(int cpu, /* * lkcd_v8.c */ -int get_lkcd_regs_for_cpu(struct bt_info *bt, ulong *eip, ulong *esp); +int get_lkcd_regs_for_cpu_v8(struct bt_info *bt, ulong *eip, ulong *esp); /* * ia64.c @@ -4111,6 +4111,7 @@ int lkcd_load_dump_page_header(void *, u void lkcd_dumpfile_complaint(uint32_t, uint32_t, int); int set_mb_benchmark(ulong); ulonglong fix_lkcd_address(ulonglong); +int get_lkcd_regs_for_cpu(struct bt_info *bt, ulong *eip, ulong *esp); /* * lkcd_v1.c --- a/lkcd_common.c +++ b/lkcd_common.c @@ -1401,3 +1401,15 @@ lkcd_dumpfile_complaint(uint32_t realpag } } +int +get_lkcd_regs_for_cpu(struct bt_info *bt, ulong *eip, ulong *esp) +{ + switch (lkcd->version) { + case LKCD_DUMP_V8: + case LKCD_DUMP_V9: + return get_lkcd_regs_for_cpu_v8(bt, eip, esp); + default: + return -1; + } +} + --- a/lkcd_v8.c +++ b/lkcd_v8.c @@ -69,12 +69,12 @@ get_lkcd_regs_for_cpu_arch(int cpu, ulon int -get_lkcd_regs_for_cpu(struct bt_info *bt, ulong *eip, ulong *esp) +get_lkcd_regs_for_cpu_v8(struct bt_info *bt, ulong *eip, ulong *esp) { int cpu; if (!bt || !bt->tc) { - fprintf(stderr, "get_lkcd_regs_for_cpu: invalid tc " + fprintf(stderr, "get_lkcd_regs_for_cpu_v8: invalid tc " "(CPU=%d)\n", cpu); return -EINVAL; } @@ -82,7 +82,7 @@ get_lkcd_regs_for_cpu(struct bt_info *bt cpu = bt->tc->processor; if (cpu >= NR_CPUS) { - fprintf(stderr, "get_lkcd_regs_for_cpu, cpu (%d) too high\n", cpu); + fprintf(stderr, "get_lkcd_regs_for_cpu_v8, cpu (%d) too high\n", cpu); return -EINVAL; } -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility