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;
                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;
 
 
        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)
        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)
 {