Loading arch/x86/kernel/traps_32.c +7 −8 Original line number Diff line number Diff line Loading @@ -106,13 +106,13 @@ static int die_counter; void printk_address(unsigned long address, int reliable) { #ifdef CONFIG_KALLSYMS char namebuf[KSYM_NAME_LEN]; unsigned long offset = 0; unsigned long symsize; const char *symname; char reliab[4] = ""; char *delim = ":"; char *modname; char *delim = ":"; char namebuf[KSYM_NAME_LEN]; char reliab[4] = ""; symname = kallsyms_lookup(address, &symsize, &offset, &modname, namebuf); Loading @@ -135,8 +135,8 @@ void printk_address(unsigned long address, int reliable) static inline int valid_stack_ptr(struct thread_info *tinfo, void *p, unsigned int size) { return p > (void *)tinfo && p <= (void *)tinfo + THREAD_SIZE - size; void *t = tinfo; return p > t && p <= t + THREAD_SIZE - size; } /* The form of the top of the frame on the stack */ Loading Loading @@ -976,9 +976,8 @@ void __kprobes do_debug(struct pt_regs *regs, long error_code) void math_error(void __user *ip) { struct task_struct *task; unsigned short cwd; unsigned short swd; siginfo_t info; unsigned short cwd, swd; /* * Save the info for the exception handler and clear the error. Loading Loading @@ -1042,8 +1041,8 @@ void do_coprocessor_error(struct pt_regs *regs, long error_code) static void simd_math_error(void __user *ip) { struct task_struct *task; unsigned short mxcsr; siginfo_t info; unsigned short mxcsr; /* * Save the info for the exception handler and clear the error. Loading arch/x86/kernel/traps_64.c +11 −9 Original line number Diff line number Diff line Loading @@ -268,7 +268,6 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs, if (!task) task = current; tinfo = task_thread_info(task); if (!stack) { unsigned long dummy; Loading @@ -294,6 +293,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs, * current stack address. If the stacks consist of nested * exceptions */ tinfo = task_thread_info(task); for (;;) { char *id; unsigned long *estack_end; Loading Loading @@ -435,8 +435,8 @@ void show_stack(struct task_struct *task, unsigned long *sp) */ void dump_stack(void) { unsigned long stack; unsigned long bp = 0; unsigned long stack; #ifdef CONFIG_FRAME_POINTER if (!bp) Loading @@ -459,12 +459,8 @@ void show_registers(struct pt_regs *regs) unsigned long sp; const int cpu = smp_processor_id(); struct task_struct *cur = cpu_pda(cpu)->pcurrent; u8 *ip; unsigned int code_prologue = code_bytes * 43 / 64; unsigned int code_len = code_bytes; sp = regs->sp; ip = (u8 *) regs->ip - code_prologue; printk("CPU %d ", cpu); __show_regs(regs); printk("Process %s (pid: %d, threadinfo %p, task %p)\n", Loading @@ -475,12 +471,18 @@ void show_registers(struct pt_regs *regs) * time of the fault.. */ if (!user_mode(regs)) { unsigned int code_prologue = code_bytes * 43 / 64; unsigned int code_len = code_bytes; unsigned char c; u8 *ip; printk("Stack: "); _show_stack(NULL, regs, (unsigned long *)sp, regs->bp); printk("\n"); printk(KERN_EMERG "Code: "); ip = (u8 *)regs->ip - code_prologue; if (ip < (u8 *)PAGE_OFFSET || probe_kernel_address(ip, c)) { /* try starting at RIP */ ip = (u8 *)regs->ip; Loading Loading @@ -927,8 +929,8 @@ asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs) asmlinkage void __kprobes do_debug(struct pt_regs * regs, unsigned long error_code) { unsigned long condition; struct task_struct *tsk = current; unsigned long condition; siginfo_t info; trace_hardirqs_fixup(); Loading Loading
arch/x86/kernel/traps_32.c +7 −8 Original line number Diff line number Diff line Loading @@ -106,13 +106,13 @@ static int die_counter; void printk_address(unsigned long address, int reliable) { #ifdef CONFIG_KALLSYMS char namebuf[KSYM_NAME_LEN]; unsigned long offset = 0; unsigned long symsize; const char *symname; char reliab[4] = ""; char *delim = ":"; char *modname; char *delim = ":"; char namebuf[KSYM_NAME_LEN]; char reliab[4] = ""; symname = kallsyms_lookup(address, &symsize, &offset, &modname, namebuf); Loading @@ -135,8 +135,8 @@ void printk_address(unsigned long address, int reliable) static inline int valid_stack_ptr(struct thread_info *tinfo, void *p, unsigned int size) { return p > (void *)tinfo && p <= (void *)tinfo + THREAD_SIZE - size; void *t = tinfo; return p > t && p <= t + THREAD_SIZE - size; } /* The form of the top of the frame on the stack */ Loading Loading @@ -976,9 +976,8 @@ void __kprobes do_debug(struct pt_regs *regs, long error_code) void math_error(void __user *ip) { struct task_struct *task; unsigned short cwd; unsigned short swd; siginfo_t info; unsigned short cwd, swd; /* * Save the info for the exception handler and clear the error. Loading Loading @@ -1042,8 +1041,8 @@ void do_coprocessor_error(struct pt_regs *regs, long error_code) static void simd_math_error(void __user *ip) { struct task_struct *task; unsigned short mxcsr; siginfo_t info; unsigned short mxcsr; /* * Save the info for the exception handler and clear the error. Loading
arch/x86/kernel/traps_64.c +11 −9 Original line number Diff line number Diff line Loading @@ -268,7 +268,6 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs, if (!task) task = current; tinfo = task_thread_info(task); if (!stack) { unsigned long dummy; Loading @@ -294,6 +293,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs, * current stack address. If the stacks consist of nested * exceptions */ tinfo = task_thread_info(task); for (;;) { char *id; unsigned long *estack_end; Loading Loading @@ -435,8 +435,8 @@ void show_stack(struct task_struct *task, unsigned long *sp) */ void dump_stack(void) { unsigned long stack; unsigned long bp = 0; unsigned long stack; #ifdef CONFIG_FRAME_POINTER if (!bp) Loading @@ -459,12 +459,8 @@ void show_registers(struct pt_regs *regs) unsigned long sp; const int cpu = smp_processor_id(); struct task_struct *cur = cpu_pda(cpu)->pcurrent; u8 *ip; unsigned int code_prologue = code_bytes * 43 / 64; unsigned int code_len = code_bytes; sp = regs->sp; ip = (u8 *) regs->ip - code_prologue; printk("CPU %d ", cpu); __show_regs(regs); printk("Process %s (pid: %d, threadinfo %p, task %p)\n", Loading @@ -475,12 +471,18 @@ void show_registers(struct pt_regs *regs) * time of the fault.. */ if (!user_mode(regs)) { unsigned int code_prologue = code_bytes * 43 / 64; unsigned int code_len = code_bytes; unsigned char c; u8 *ip; printk("Stack: "); _show_stack(NULL, regs, (unsigned long *)sp, regs->bp); printk("\n"); printk(KERN_EMERG "Code: "); ip = (u8 *)regs->ip - code_prologue; if (ip < (u8 *)PAGE_OFFSET || probe_kernel_address(ip, c)) { /* try starting at RIP */ ip = (u8 *)regs->ip; Loading Loading @@ -927,8 +929,8 @@ asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs) asmlinkage void __kprobes do_debug(struct pt_regs * regs, unsigned long error_code) { unsigned long condition; struct task_struct *tsk = current; unsigned long condition; siginfo_t info; trace_hardirqs_fixup(); Loading