Lines Matching full:stack

38 static bool in_hardirq_stack(unsigned long *stack, struct stack_info *info)  in in_hardirq_stack()  argument
44 * This is a software stack, so 'end' can be a valid stack pointer. in in_hardirq_stack()
45 * It just means the stack is empty. in in_hardirq_stack()
47 if (stack < begin || stack > end) in in_hardirq_stack()
55 * See irq_32.c -- the next stack pointer is stored at the beginning of in in_hardirq_stack()
56 * the stack. in in_hardirq_stack()
63 static bool in_softirq_stack(unsigned long *stack, struct stack_info *info) in in_softirq_stack() argument
69 * This is a software stack, so 'end' can be a valid stack pointer. in in_softirq_stack()
70 * It just means the stack is empty. in in_softirq_stack()
72 if (stack < begin || stack > end) in in_softirq_stack()
80 * The next stack pointer is stored at the beginning of the stack. in in_softirq_stack()
88 static bool in_doublefault_stack(unsigned long *stack, struct stack_info *info) in in_doublefault_stack() argument
93 void *begin = ss->stack; in in_doublefault_stack()
94 void *end = begin + sizeof(ss->stack); in in_doublefault_stack()
96 if ((void *)stack < begin || (void *)stack >= end) in in_doublefault_stack()
108 int get_stack_info(unsigned long *stack, struct task_struct *task, in get_stack_info() argument
111 if (!stack) in get_stack_info()
116 if (in_task_stack(stack, task, info)) in get_stack_info()
122 if (in_entry_stack(stack, info)) in get_stack_info()
125 if (in_hardirq_stack(stack, info)) in get_stack_info()
128 if (in_softirq_stack(stack, info)) in get_stack_info()
131 if (in_doublefault_stack(stack, info)) in get_stack_info()
138 * Make sure we don't iterate through any given stack more than once. in get_stack_info()
140 * just break out and report an unknown stack type. in get_stack_info()
144 printk_deferred_once(KERN_WARNING "WARNING: stack recursion on stack type %d\n", info->type); in get_stack_info()