aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/mm/fault.c
diff options
context:
space:
mode:
authorAlexander Nyberg <alexn@telia.com>2005-06-25 17:58:27 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-25 19:24:55 -0400
commit4f339ecb30c759f94a29992d4635d9194132b6cf (patch)
tree9a1438b35d87a1d3a3359c273a39ac4895578e1c /arch/i386/mm/fault.c
parent6e274d144302068a00794ec22e73520c0615cb6f (diff)
[PATCH] kdump: Save trap information for later analysis
If we are faulting in kernel it is quite possible this will lead to a panic. Save trap number, cr2 (in case of page fault) and error_code in the current thread (these fields already exist for signal delivery but are not used here). This helps later kdump crash analyzing from user-space (a script has been submitted to dig this info out in gdb). Signed-off-by: Alexander Nyberg <alexn@telia.com> Cc: <fastboot@lists.osdl.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/mm/fault.c')
-rw-r--r--arch/i386/mm/fault.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c
index a509237c4815..92ed6c0a55da 100644
--- a/arch/i386/mm/fault.c
+++ b/arch/i386/mm/fault.c
@@ -463,6 +463,9 @@ no_context:
463 printk(KERN_ALERT "*pte = %08lx\n", page); 463 printk(KERN_ALERT "*pte = %08lx\n", page);
464 } 464 }
465#endif 465#endif
466 tsk->thread.cr2 = address;
467 tsk->thread.trap_no = 14;
468 tsk->thread.error_code = error_code;
466 die("Oops", regs, error_code); 469 die("Oops", regs, error_code);
467 bust_spinlocks(0); 470 bust_spinlocks(0);
468 do_exit(SIGKILL); 471 do_exit(SIGKILL);