Lines Matching full:stack

32 bool noinstr in_task_stack(unsigned long *stack, struct task_struct *task,  in in_task_stack()  argument
38 if (stack < begin || stack >= end) in in_task_stack()
50 bool noinstr in_entry_stack(unsigned long *stack, struct stack_info *info) in in_entry_stack() argument
57 if ((void *)stack < begin || (void *)stack >= end) in in_entry_stack()
128 /* No access to the user space stack of other tasks. Ignore. */ in show_opcodes()
160 * ordering reasons: if the registers are on the next stack, we don't in show_regs_if_on_stack()
162 * the wrong stack. Later, when show_trace_log_lvl() switches to the in show_regs_if_on_stack()
163 * next stack, this function will be called again with the same regs so in show_regs_if_on_stack()
181 * This function reads pointers from the stack and dereferences them. The
187 unsigned long *stack, const char *log_lvl) in show_trace_log_lvl() argument
197 unwind_start(&state, task, regs, stack); in show_trace_log_lvl()
201 * Iterate through the stacks, starting with the current stack pointer. in show_trace_log_lvl()
202 * Each stack has a pointer to the next one. in show_trace_log_lvl()
205 * - task stack in show_trace_log_lvl()
206 * - interrupt stack in show_trace_log_lvl()
208 * - entry stack in show_trace_log_lvl()
211 * - task stack in show_trace_log_lvl()
212 * - softirq stack in show_trace_log_lvl()
213 * - hardirq stack in show_trace_log_lvl()
214 * - entry stack in show_trace_log_lvl()
216 for (stack = stack ?: get_stack_pointer(task, regs); in show_trace_log_lvl()
217 stack; in show_trace_log_lvl()
218 stack = stack_info.next_sp) { in show_trace_log_lvl()
221 stack = PTR_ALIGN(stack, sizeof(long)); in show_trace_log_lvl()
223 if (get_stack_info(stack, task, &stack_info, &visit_mask)) { in show_trace_log_lvl()
225 * We weren't on a valid stack. It's possible that in show_trace_log_lvl()
226 * we overflowed a valid stack into a guard page. in show_trace_log_lvl()
230 stack = (unsigned long *)PAGE_ALIGN((unsigned long)stack); in show_trace_log_lvl()
231 if (get_stack_info(stack, task, &stack_info, &visit_mask)) in show_trace_log_lvl()
243 * Scan the stack, printing any text addresses we find. At the in show_trace_log_lvl()
244 * same time, follow proper stack frames with the unwinder. in show_trace_log_lvl()
252 for (; stack < stack_info.end; stack++) { in show_trace_log_lvl()
255 unsigned long addr = READ_ONCE_NOCHECK(*stack); in show_trace_log_lvl()
266 if (regs && stack == &regs->ip) in show_trace_log_lvl()
269 if (stack == ret_addr_p) in show_trace_log_lvl()
274 * function, its return address on the stack is in show_trace_log_lvl()
282 addr, stack); in show_trace_log_lvl()
315 * Stack frames below this one aren't interesting. Don't show them in show_stack()
385 * We're not going to return, but we might be on an IST stack or in oops_end()
386 * have very little stack space left. Rewind the stack and kill in oops_end()
388 * Before we rewind the stack, we have to tell KASAN that we're going to in oops_end()
389 * reuse the task stack and that existing poisons are invalid. in oops_end()
475 * When in-kernel, we also print out the stack at the time of the fault.. in show_regs()