mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 02:25:21 +07:00
b02fcf9ba1
There are at least two unwinder bugs hindering the debugging of stack-overflow crashes: - It doesn't deal gracefully with the case where the stack overflows and the stack pointer itself isn't on a valid stack but the to-be-dereferenced data *is*. - The ORC oops dump code doesn't know how to print partial pt_regs, for the case where if we get an interrupt/exception in *early* entry code before the full pt_regs have been saved. Fix both issues. http://lkml.kernel.org/r/20171126024031.uxi4numpbjm5rlbr@treble Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Borislav Petkov <bpetkov@suse.de> Cc: Andy Lutomirski <luto@kernel.org> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: David Laight <David.Laight@aculab.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: Eduardo Valentin <eduval@amazon.com> Cc: Greg KH <gregkh@linuxfoundation.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Juergen Gross <jgross@suse.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Rik van Riel <riel@redhat.com> Cc: Will Deacon <will.deacon@arm.com> Cc: aliguori@amazon.com Cc: daniel.gruss@iaik.tugraz.at Cc: hughd@google.com Cc: keescook@google.com Link: https://lkml.kernel.org/r/20171204150605.071425003@linutronix.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
34 lines
752 B
C
34 lines
752 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _ASM_X86_KDEBUG_H
|
|
#define _ASM_X86_KDEBUG_H
|
|
|
|
#include <linux/notifier.h>
|
|
|
|
struct pt_regs;
|
|
|
|
/* Grossly misnamed. */
|
|
enum die_val {
|
|
DIE_OOPS = 1,
|
|
DIE_INT3,
|
|
DIE_DEBUG,
|
|
DIE_PANIC,
|
|
DIE_NMI,
|
|
DIE_DIE,
|
|
DIE_KERNELDEBUG,
|
|
DIE_TRAP,
|
|
DIE_GPF,
|
|
DIE_CALL,
|
|
DIE_PAGE_FAULT,
|
|
DIE_NMIUNKNOWN,
|
|
};
|
|
|
|
extern void die(const char *, struct pt_regs *,long);
|
|
extern int __must_check __die(const char *, struct pt_regs *, long);
|
|
extern void show_stack_regs(struct pt_regs *regs);
|
|
extern void __show_regs(struct pt_regs *regs, int all);
|
|
extern void show_iret_regs(struct pt_regs *regs);
|
|
extern unsigned long oops_begin(void);
|
|
extern void oops_end(unsigned long, struct pt_regs *, int signr);
|
|
|
|
#endif /* _ASM_X86_KDEBUG_H */
|