| .. | .. | 
|---|
| 60 | 60 |  #define FRAME_END "pop %" _ASM_BP "\n" | 
|---|
| 61 | 61 |   | 
|---|
| 62 | 62 |  #ifdef CONFIG_X86_64 | 
|---|
 | 63 | +  | 
|---|
| 63 | 64 |  #define ENCODE_FRAME_POINTER			\ | 
|---|
| 64 | 65 |  	"lea 1(%rsp), %rbp\n\t" | 
|---|
 | 66 | +  | 
|---|
 | 67 | +static inline unsigned long encode_frame_pointer(struct pt_regs *regs)  | 
|---|
 | 68 | +{  | 
|---|
 | 69 | +	return (unsigned long)regs + 1;  | 
|---|
 | 70 | +}  | 
|---|
 | 71 | +  | 
|---|
| 65 | 72 |  #else /* !CONFIG_X86_64 */ | 
|---|
 | 73 | +  | 
|---|
| 66 | 74 |  #define ENCODE_FRAME_POINTER			\ | 
|---|
| 67 | 75 |  	"movl %esp, %ebp\n\t"			\ | 
|---|
| 68 | 76 |  	"andl $0x7fffffff, %ebp\n\t" | 
|---|
 | 77 | +  | 
|---|
 | 78 | +static inline unsigned long encode_frame_pointer(struct pt_regs *regs)  | 
|---|
 | 79 | +{  | 
|---|
 | 80 | +	return (unsigned long)regs & 0x7fffffff;  | 
|---|
 | 81 | +}  | 
|---|
 | 82 | +  | 
|---|
| 69 | 83 |  #endif /* CONFIG_X86_64 */ | 
|---|
| 70 | 84 |   | 
|---|
| 71 | 85 |  #endif /* __ASSEMBLY__ */ | 
|---|
| .. | .. | 
|---|
| 83 | 97 |   | 
|---|
| 84 | 98 |  #define ENCODE_FRAME_POINTER | 
|---|
| 85 | 99 |   | 
|---|
 | 100 | +static inline unsigned long encode_frame_pointer(struct pt_regs *regs)  | 
|---|
 | 101 | +{  | 
|---|
 | 102 | +	return 0;  | 
|---|
 | 103 | +}  | 
|---|
 | 104 | +  | 
|---|
| 86 | 105 |  #endif | 
|---|
| 87 | 106 |   | 
|---|
| 88 | 107 |  #define FRAME_BEGIN | 
|---|