--- crash-7.0.9/ppc64.c.orig +++ crash-7.0.9/ppc64.c @@ -1,7 +1,7 @@ /* ppc64.c -- core analysis suite * - * Copyright (C) 2004-2014 David Anderson - * Copyright (C) 2004-2014 Red Hat, Inc. All rights reserved. + * Copyright (C) 2004-2015 David Anderson + * Copyright (C) 2004-2015 Red Hat, Inc. All rights reserved. * Copyright (C) 2004, 2006 Haren Myneni, IBM Corporation * * This program is free software; you can redistribute it and/or modify @@ -414,7 +414,7 @@ ppc64_init(int when) break; case LOG_ONLY: - machdep->kvbase = kt->vmcoreinfo._stext_SYMBOL; + machdep->identity_map_base = kt->vmcoreinfo._stext_SYMBOL; break; } } @@ -1898,8 +1898,8 @@ ppc64_print_regs(struct ppc64_pt_regs *r int i; /* print out the gprs... */ - for(i=0; i<32; i++) { - if(!(i % 3)) + for (i=0; i<32; i++) { + if (i && !(i % 3)) fprintf(fp, "\n"); fprintf(fp, " R%d:%s %016lx ", i, @@ -1940,9 +1940,8 @@ ppc64_print_eframe(char *efrm_str, struc if (BT_REFERENCE_CHECK(bt)) return; - fprintf(fp, " %s [%lx] exception frame:", efrm_str, regs->trap); + fprintf(fp, " %s [%lx] exception frame:\n", efrm_str, regs->trap); ppc64_print_regs(regs); - fprintf(fp, "\n"); } /* @@ -1996,8 +1995,6 @@ ppc64_kdump_stack_frame(struct bt_info * fprintf(fp, " LR [%016lx] %s\n", pt_regs->link, closest_symbol(pt_regs->link)); - fprintf(fp, "\n"); - return TRUE; } @@ -2008,7 +2005,7 @@ static int ppc64_get_dumpfile_stack_frame(struct bt_info *bt_in, ulong *nip, ulong *ksp) { int panic_task; - int i, panic; + int i; char *sym; ulong *up; struct bt_info bt_local, *bt; @@ -2092,10 +2089,8 @@ ppc64_get_dumpfile_stack_frame(struct bt fprintf(fp, "Could not find SP for task %0lx\n", bt->task); } - return TRUE; } - panic = FALSE; /* * Check the process stack first. We are scanning stack for only * panic task. Even though we have dumping CPU's regs, we will be @@ -2112,8 +2107,12 @@ retry: if (STREQ(sym, ".netconsole_netdump") || STREQ(sym, ".netpoll_start_netdump") || STREQ(sym, ".start_disk_dump") || + STREQ(sym, "crash_kexec") || + STREQ(sym, "crash_fadump") || + STREQ(sym, "crash_ipi_callback") || STREQ(sym, ".crash_kexec") || STREQ(sym, ".crash_fadump") || + STREQ(sym, ".crash_ipi_callback") || STREQ(sym, ".disk_dump")) { *nip = *up; *ksp = bt->stackbase + @@ -2122,9 +2121,6 @@ retry: } } - if (panic) - return TRUE; - bt->flags &= ~(BT_HARDIRQ|BT_SOFTIRQ); if (check_hardirq &&