mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 16:37:50 +00:00
KVM: arm64: Stub implementation of non-protected nVHE HYP stack unwinder
Add stub implementations of non-protected nVHE stack unwinder, for building. These are implemented later in this series. Signed-off-by: Kalesh Singh <kaleshsingh@google.com> Reviewed-by: Fuad Tabba <tabba@google.com> Tested-by: Fuad Tabba <tabba@google.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20220726073750.3219117-9-kaleshsingh@google.com
This commit is contained in:
parent
548ec3336f
commit
573e1e8275
1 changed files with 47 additions and 0 deletions
47
arch/arm64/include/asm/stacktrace/nvhe.h
Normal file
47
arch/arm64/include/asm/stacktrace/nvhe.h
Normal file
|
@ -0,0 +1,47 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* KVM nVHE hypervisor stack tracing support.
|
||||
*
|
||||
* The unwinder implementation depends on the nVHE mode:
|
||||
*
|
||||
* 1) Non-protected nVHE mode - the host can directly access the
|
||||
* HYP stack pages and unwind the HYP stack in EL1. This saves having
|
||||
* to allocate shared buffers for the host to read the unwinded
|
||||
* stacktrace.
|
||||
*
|
||||
* Copyright (C) 2022 Google LLC
|
||||
*/
|
||||
#ifndef __ASM_STACKTRACE_NVHE_H
|
||||
#define __ASM_STACKTRACE_NVHE_H
|
||||
|
||||
#include <asm/stacktrace/common.h>
|
||||
|
||||
static inline bool on_accessible_stack(const struct task_struct *tsk,
|
||||
unsigned long sp, unsigned long size,
|
||||
struct stack_info *info)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifndef __KVM_NVHE_HYPERVISOR__
|
||||
/*
|
||||
* Conventional (non-protected) nVHE HYP stack unwinder
|
||||
*
|
||||
* In non-protected mode, the unwinding is done from kernel proper context
|
||||
* (by the host in EL1).
|
||||
*/
|
||||
|
||||
static inline bool on_overflow_stack(unsigned long sp, unsigned long size,
|
||||
struct stack_info *info)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline int notrace unwind_next(struct unwind_state *state)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
NOKPROBE_SYMBOL(unwind_next);
|
||||
|
||||
#endif /* !__KVM_NVHE_HYPERVISOR__ */
|
||||
#endif /* __ASM_STACKTRACE_NVHE_H */
|
Loading…
Reference in a new issue