arm64: stacktrace: Factor out on_accessible_stack_common()
Move common on_accessible_stack checks to stacktrace/common.h. This is used in the implementation of the nVHE hypervisor unwinder later in this series. Signed-off-by: Kalesh Singh <kaleshsingh@google.com> Reviewed-by: Fuad Tabba <tabba@google.com> Reviewed-by: Mark Brown <broonie@kernel.org> Tested-by: Fuad Tabba <tabba@google.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20220726073750.3219117-3-kaleshsingh@google.com
This commit is contained in:
parent
6bf212c89c
commit
15a59f19a0
|
@ -65,8 +65,8 @@ static inline bool on_accessible_stack(const struct task_struct *tsk,
|
|||
unsigned long sp, unsigned long size,
|
||||
struct stack_info *info)
|
||||
{
|
||||
if (info)
|
||||
info->type = STACK_TYPE_UNKNOWN;
|
||||
if (on_accessible_stack_common(tsk, sp, size, info))
|
||||
return true;
|
||||
|
||||
if (on_task_stack(tsk, sp, size, info))
|
||||
return true;
|
||||
|
@ -74,8 +74,6 @@ static inline bool on_accessible_stack(const struct task_struct *tsk,
|
|||
return false;
|
||||
if (on_irq_stack(sp, size, info))
|
||||
return true;
|
||||
if (on_overflow_stack(sp, size, info))
|
||||
return true;
|
||||
if (on_sdei_stack(sp, size, info))
|
||||
return true;
|
||||
|
||||
|
|
|
@ -62,6 +62,9 @@ struct unwind_state {
|
|||
struct task_struct *task;
|
||||
};
|
||||
|
||||
static inline bool on_overflow_stack(unsigned long sp, unsigned long size,
|
||||
struct stack_info *info);
|
||||
|
||||
static inline bool on_stack(unsigned long sp, unsigned long size,
|
||||
unsigned long low, unsigned long high,
|
||||
enum stack_type type, struct stack_info *info)
|
||||
|
@ -80,6 +83,21 @@ static inline bool on_stack(unsigned long sp, unsigned long size,
|
|||
return true;
|
||||
}
|
||||
|
||||
static inline bool on_accessible_stack_common(const struct task_struct *tsk,
|
||||
unsigned long sp,
|
||||
unsigned long size,
|
||||
struct stack_info *info)
|
||||
{
|
||||
if (info)
|
||||
info->type = STACK_TYPE_UNKNOWN;
|
||||
|
||||
/*
|
||||
* Both the kernel and nvhe hypervisor make use of
|
||||
* an overflow_stack
|
||||
*/
|
||||
return on_overflow_stack(sp, size, info);
|
||||
}
|
||||
|
||||
static inline void unwind_init_common(struct unwind_state *state,
|
||||
struct task_struct *task)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue