diff options
| author | Per Fransson <per.xx.fransson@stericsson.com> | 2011-09-23 14:11:24 +0200 |
|---|---|---|
| committer | Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> | 2011-10-03 06:49:44 +0200 |
| commit | 160cebfb0d9fcaa4fc9b5ee615a4923990072fca (patch) | |
| tree | e302b9542e6c228e613d32ee0ccb170590192736 /kernel | |
| parent | 920346c71e3def3760ad1b9d1ff2078b9d44a442 (diff) | |
ux500: Start crash dump through SW reset
When using kexec/kdump without an crash kernel image loaded:
* clean the caches and write the crash_notes
* perform a restart
ST-Ericsson ID: 340331
Change-Id: I1ae34ed2b5e43da4849650a8a7d2f1e453dcbe93
Signed-off-by: Per Fransson <per.xx.fransson@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/32678
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/kexec.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/kernel/kexec.c b/kernel/kexec.c index cf5f9ad2b91..e3ae2e75e78 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -1069,6 +1069,7 @@ asmlinkage long compat_sys_kexec_load(unsigned long entry, void crash_kexec(struct pt_regs *regs) { + struct pt_regs fixed_regs; /* Take the kexec_mutex here to prevent sys_kexec_load * running on one cpu from replacing the crash kernel * we are using after a panic on a different cpu. @@ -1079,7 +1080,6 @@ void crash_kexec(struct pt_regs *regs) */ if (mutex_trylock(&kexec_mutex)) { if (kexec_crash_image) { - struct pt_regs fixed_regs; kmsg_dump(KMSG_DUMP_KEXEC); @@ -1088,6 +1088,14 @@ void crash_kexec(struct pt_regs *regs) machine_crash_shutdown(&fixed_regs); machine_kexec(kexec_crash_image); } +#ifdef CONFIG_CRASH_SWRESET + else { + crash_setup_regs(&fixed_regs, regs); + crash_save_vmcoreinfo(); + machine_crash_shutdown(&fixed_regs); + machine_crash_swreset(); + } +#endif mutex_unlock(&kexec_mutex); } } |
