| .. | .. | 
|---|
| 9 | 9 |   | 
|---|
| 10 | 10 |  #include <linux/uaccess.h> | 
|---|
| 11 | 11 |  #include <linux/ptrace.h> | 
|---|
 | 12 | +  | 
|---|
 | 13 | +#include <asm/cpu_entry_area.h>  | 
|---|
| 12 | 14 |  #include <asm/switch_to.h> | 
|---|
| 13 | 15 |   | 
|---|
| 14 | 16 |  enum stack_type { | 
|---|
| .. | .. | 
|---|
| 33 | 35 |   | 
|---|
| 34 | 36 |  int get_stack_info(unsigned long *stack, struct task_struct *task, | 
|---|
| 35 | 37 |  		   struct stack_info *info, unsigned long *visit_mask); | 
|---|
 | 38 | +bool get_stack_info_noinstr(unsigned long *stack, struct task_struct *task,  | 
|---|
 | 39 | +			    struct stack_info *info);  | 
|---|
| 36 | 40 |   | 
|---|
| 37 | 41 |  const char *stack_type_name(enum stack_type type); | 
|---|
| 38 | 42 |   | 
|---|
| .. | .. | 
|---|
| 76 | 80 |  get_stack_pointer(struct task_struct *task, struct pt_regs *regs) | 
|---|
| 77 | 81 |  { | 
|---|
| 78 | 82 |  	if (regs) | 
|---|
| 79 |  | -		return (unsigned long *)kernel_stack_pointer(regs);  | 
|---|
 | 83 | +		return (unsigned long *)regs->sp;  | 
|---|
| 80 | 84 |   | 
|---|
| 81 | 85 |  	if (task == current) | 
|---|
| 82 | 86 |  		return __builtin_frame_address(0); | 
|---|
| .. | .. | 
|---|
| 85 | 89 |  } | 
|---|
| 86 | 90 |   | 
|---|
| 87 | 91 |  void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, | 
|---|
| 88 |  | -			unsigned long *stack, char *log_lvl);  | 
|---|
 | 92 | +			unsigned long *stack, const char *log_lvl);  | 
|---|
| 89 | 93 |   | 
|---|
| 90 | 94 |  /* The form of the top of the frame on the stack */ | 
|---|
| 91 | 95 |  struct stack_frame { | 
|---|
| .. | .. | 
|---|
| 97 | 101 |      u32 next_frame; | 
|---|
| 98 | 102 |      u32 return_address; | 
|---|
| 99 | 103 |  }; | 
|---|
| 100 |  | -  | 
|---|
| 101 |  | -static inline unsigned long caller_frame_pointer(void)  | 
|---|
| 102 |  | -{  | 
|---|
| 103 |  | -	struct stack_frame *frame;  | 
|---|
| 104 |  | -  | 
|---|
| 105 |  | -	frame = __builtin_frame_address(0);  | 
|---|
| 106 |  | -  | 
|---|
| 107 |  | -#ifdef CONFIG_FRAME_POINTER  | 
|---|
| 108 |  | -	frame = frame->next_frame;  | 
|---|
| 109 |  | -#endif  | 
|---|
| 110 |  | -  | 
|---|
| 111 |  | -	return (unsigned long)frame;  | 
|---|
| 112 |  | -}  | 
|---|
| 113 | 104 |   | 
|---|
| 114 | 105 |  void show_opcodes(struct pt_regs *regs, const char *loglvl); | 
|---|
| 115 | 106 |  void show_ip(struct pt_regs *regs, const char *loglvl); | 
|---|