diff options
author | Kalesh Singh <kaleshsingh@google.com> | 2022-07-26 09:37:43 +0200 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2022-07-26 11:49:39 +0200 |
commit | db129d486ebdf4e3168282236f9d9008b42cac7e (patch) | |
tree | a192d8042d29349f6b0f47a3003ecd8470e54e2f /arch/arm64/include/asm/stacktrace/common.h | |
parent | KVM: arm64: Prepare non-protected nVHE hypervisor stacktrace (diff) | |
download | linux-db129d486ebdf4e3168282236f9d9008b42cac7e.tar.xz linux-db129d486ebdf4e3168282236f9d9008b42cac7e.zip |
KVM: arm64: Implement non-protected nVHE hyp stack unwinder
Implements the common framework necessary for unwind() to work
for non-protected nVHE mode:
- on_accessible_stack()
- on_overflow_stack()
- unwind_next()
Non-protected nVHE unwind() is used to unwind and dump the hypervisor
stacktrace by the host in EL1
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-11-kaleshsingh@google.com
Diffstat (limited to 'arch/arm64/include/asm/stacktrace/common.h')
-rw-r--r-- | arch/arm64/include/asm/stacktrace/common.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/stacktrace/common.h b/arch/arm64/include/asm/stacktrace/common.h index 45474b383630..3ebb69ea374a 100644 --- a/arch/arm64/include/asm/stacktrace/common.h +++ b/arch/arm64/include/asm/stacktrace/common.h @@ -34,6 +34,7 @@ enum stack_type { STACK_TYPE_OVERFLOW, STACK_TYPE_SDEI_NORMAL, STACK_TYPE_SDEI_CRITICAL, + STACK_TYPE_HYP, __NR_STACK_TYPES }; @@ -186,6 +187,7 @@ static inline int unwind_next_common(struct unwind_state *state, * * TASK -> IRQ -> OVERFLOW -> SDEI_NORMAL * TASK -> SDEI_NORMAL -> SDEI_CRITICAL -> OVERFLOW + * HYP -> OVERFLOW * * ... but the nesting itself is strict. Once we transition from one * stack to another, it's never valid to unwind back to that first |