mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
KVM: arm64: Prepare non-protected nVHE hypervisor stacktrace
In non-protected nVHE mode (non-pKVM) the host can directly access hypervisor memory; and unwinding of the hypervisor stacktrace is done from EL1 to save on memory for shared buffers. To unwind the hypervisor stack from EL1 the host needs to know the starting point for the unwind and information that will allow it to translate hypervisor stack addresses to the corresponding kernel addresses. This patch sets up this book keeping. It is made use of later in the 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-10-kaleshsingh@google.com
This commit is contained in:
committed by
Marc Zyngier
parent
573e1e8275
commit
879e5ac7b2
@@ -176,6 +176,22 @@ struct kvm_nvhe_init_params {
|
||||
unsigned long vtcr;
|
||||
};
|
||||
|
||||
/*
|
||||
* Used by the host in EL1 to dump the nVHE hypervisor backtrace on
|
||||
* hyp_panic() in non-protected mode.
|
||||
*
|
||||
* @stack_base: hyp VA of the hyp_stack base.
|
||||
* @overflow_stack_base: hyp VA of the hyp_overflow_stack base.
|
||||
* @fp: hyp FP where the backtrace begins.
|
||||
* @pc: hyp PC where the backtrace begins.
|
||||
*/
|
||||
struct kvm_nvhe_stacktrace_info {
|
||||
unsigned long stack_base;
|
||||
unsigned long overflow_stack_base;
|
||||
unsigned long fp;
|
||||
unsigned long pc;
|
||||
};
|
||||
|
||||
/* Translate a kernel address @ptr into its equivalent linear mapping */
|
||||
#define kvm_ksym_ref(ptr) \
|
||||
({ \
|
||||
|
||||
Reference in New Issue
Block a user