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()
198 stack = stack ? : get_stack_pointer(task, regs); in show_trace_log_lvl()
202 * Iterate through the stacks, starting with the current stack pointer. in show_trace_log_lvl()
203 * Each stack has a pointer to the next one. in show_trace_log_lvl()
206 * - task stack in show_trace_log_lvl()
207 * - interrupt stack in show_trace_log_lvl()
209 * - entry stack in show_trace_log_lvl()
212 * - task stack in show_trace_log_lvl()
213 * - softirq stack in show_trace_log_lvl()
214 * - hardirq stack in show_trace_log_lvl()
215 * - entry stack in show_trace_log_lvl()
217 for ( ; stack; stack = PTR_ALIGN(stack_info.next_sp, sizeof(long))) { in show_trace_log_lvl()
220 if (get_stack_info(stack, task, &stack_info, &visit_mask)) { in show_trace_log_lvl()
222 * We weren't on a valid stack. It's possible that in show_trace_log_lvl()
223 * we overflowed a valid stack into a guard page. in show_trace_log_lvl()
227 stack = (unsigned long *)PAGE_ALIGN((unsigned long)stack); in show_trace_log_lvl()
228 if (get_stack_info(stack, task, &stack_info, &visit_mask)) in show_trace_log_lvl()
240 * Scan the stack, printing any text addresses we find. At the in show_trace_log_lvl()
241 * same time, follow proper stack frames with the unwinder. in show_trace_log_lvl()
249 for (; stack < stack_info.end; stack++) { in show_trace_log_lvl()
252 unsigned long addr = READ_ONCE_NOCHECK(*stack); in show_trace_log_lvl()
263 if (regs && stack == ®s->ip) in show_trace_log_lvl()
266 if (stack == ret_addr_p) in show_trace_log_lvl()
271 * function, its return address on the stack is in show_trace_log_lvl()
279 addr, stack); in show_trace_log_lvl()
312 * Stack frames below this one aren't interesting. Don't show them in show_stack()
382 * We're not going to return, but we might be on an IST stack or in oops_end()
383 * have very little stack space left. Rewind the stack and kill in oops_end()
385 * Before we rewind the stack, we have to tell KASAN that we're going to in oops_end()
386 * reuse the task stack and that existing poisons are invalid. in oops_end()
472 * When in-kernel, we also print out the stack at the time of the fault.. in show_regs()