diff options
| author | 2017-01-30 08:57:22 +0100 | |
|---|---|---|
| committer | 2017-01-30 08:57:22 +0100 | |
| commit | 1b62d134d3c5f9e67de096af7ea3e9fe48966f17 (patch) | |
| tree | be30467e997cc8ba0d350309dd498f00cb69969b /arch/x86/include/asm/unwind.h | |
| parent | ACPICA: Tables: Fix hidden logic related to acpi_tb_install_standard_table() (diff) | |
| parent | ACPICA: Update version to 20161222 (diff) | |
| download | wireguard-linux-1b62d134d3c5f9e67de096af7ea3e9fe48966f17.tar.xz wireguard-linux-1b62d134d3c5f9e67de096af7ea3e9fe48966f17.zip | |
Merge back earlier ACPICA changes for v4.11.
Diffstat (limited to 'arch/x86/include/asm/unwind.h')
| -rw-r--r-- | arch/x86/include/asm/unwind.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/x86/include/asm/unwind.h b/arch/x86/include/asm/unwind.h index 46de9ac4b990..6fa75b17aec3 100644 --- a/arch/x86/include/asm/unwind.h +++ b/arch/x86/include/asm/unwind.h @@ -12,7 +12,8 @@ struct unwind_state { struct task_struct *task; int graph_idx; #ifdef CONFIG_FRAME_POINTER - unsigned long *bp; + unsigned long *bp, *orig_sp; + struct pt_regs *regs; #else unsigned long *sp; #endif @@ -47,7 +48,15 @@ unsigned long *unwind_get_return_address_ptr(struct unwind_state *state) if (unwind_done(state)) return NULL; - return state->bp + 1; + return state->regs ? &state->regs->ip : state->bp + 1; +} + +static inline struct pt_regs *unwind_get_entry_regs(struct unwind_state *state) +{ + if (unwind_done(state)) + return NULL; + + return state->regs; } #else /* !CONFIG_FRAME_POINTER */ @@ -58,6 +67,11 @@ unsigned long *unwind_get_return_address_ptr(struct unwind_state *state) return NULL; } +static inline struct pt_regs *unwind_get_entry_regs(struct unwind_state *state) +{ + return NULL; +} + #endif /* CONFIG_FRAME_POINTER */ #endif /* _ASM_X86_UNWIND_H */ |
