summaryrefslogtreecommitdiff
path: root/arch/arm64/kernel/stacktrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm64/kernel/stacktrace.c')
-rw-r--r--arch/arm64/kernel/stacktrace.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c
index 4c8865e495fe..edf9edca2055 100644
--- a/arch/arm64/kernel/stacktrace.c
+++ b/arch/arm64/kernel/stacktrace.c
@@ -86,8 +86,15 @@ static bool on_accessible_stack(const struct task_struct *tsk,
return true;
if (on_overflow_stack(sp, size, info))
return true;
- if (on_sdei_stack(sp, size, info))
- return true;
+
+ if (IS_ENABLED(CONFIG_VMAP_STACK) &&
+ IS_ENABLED(CONFIG_ARM_SDE_INTERFACE) &&
+ in_nmi()) {
+ if (on_sdei_critical_stack(sp, size, info))
+ return true;
+ if (on_sdei_normal_stack(sp, size, info))
+ return true;
+ }
return false;
}