| /linux/lib/ |
| A D | stackdepot.c | 340 return stack; in depot_pop_free_pool() 366 return stack; in depot_pop_free() 407 if (!stack) { in depot_alloc_stack() 409 if (!stack) in depot_alloc_stack() 414 stack->hash = hash; in depot_alloc_stack() 436 return stack; in depot_alloc_stack() 460 stack = pool + offset; in depot_fetch_stack() 464 return stack; in depot_fetch_stack() 553 if (stack->hash != hash || stack->size != size) in find_stack() 575 ret = stack; in find_stack() [all …]
|
| /linux/tools/testing/selftests/bpf/progs/ |
| A D | test_global_func_ctx_args.c | 11 static long stack[256]; variable 19 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in kprobe_typedef_ctx_subprog() 50 return bpf_get_stack((void *)ctx, &stack, sizeof(stack), 0); in kprobe_struct_ctx_subprog() 67 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in kprobe_workaround_ctx_subprog() 83 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in raw_tp_ctx_subprog() 99 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in raw_tp_writable_ctx_subprog() 115 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in perf_event_ctx_subprog() 130 return bpf_get_stack(ctx, stack, sizeof(stack), 0); in subprog_ctx_tag() 142 return bpf_get_stack(ctx1, stack, sizeof(stack), 0) + in subprog_multi_ctx_tags() 144 bpf_get_stack(ctx2, stack, sizeof(stack), 0); in subprog_multi_ctx_tags()
|
| /linux/drivers/misc/altera-stapl/ |
| A D | altera.c | 213 long *stack = astate->stack; in altera_execute() local 528 stack[stack_ptr] = stack[stack_ptr - 1]; in altera_execute() 539 stack[stack_ptr - 1] += stack[stack_ptr]; in altera_execute() 545 stack[stack_ptr - 1] -= stack[stack_ptr]; in altera_execute() 551 stack[stack_ptr - 1] *= stack[stack_ptr]; in altera_execute() 557 stack[stack_ptr - 1] /= stack[stack_ptr]; in altera_execute() 563 stack[stack_ptr - 1] %= stack[stack_ptr]; in altera_execute() 569 stack[stack_ptr - 1] <<= stack[stack_ptr]; in altera_execute() 586 stack[stack_ptr - 1] &= stack[stack_ptr]; in altera_execute() 592 stack[stack_ptr - 1] |= stack[stack_ptr]; in altera_execute() [all …]
|
| /linux/arch/x86/kernel/ |
| A D | dumpstack_32.c | 47 if (stack < begin || stack > end) in in_hardirq_stack() 72 if (stack < begin || stack > end) in in_softirq_stack() 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() 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() [all …]
|
| A D | dumpstack.c | 38 if (stack < begin || stack >= end) in in_task_stack() 57 if ((void *)stack < begin || (void *)stack >= end) in in_entry_stack() 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() 230 stack = (unsigned long *)PAGE_ALIGN((unsigned long)stack); in show_trace_log_lvl() 252 for (; stack < stack_info.end; stack++) { in show_trace_log_lvl() 266 if (regs && stack == ®s->ip) in show_trace_log_lvl() 269 if (stack == ret_addr_p) in show_trace_log_lvl() [all …]
|
| A D | dumpstack_64.c | 96 unsigned long begin, end, stk = (unsigned long)stack; in in_exception_stack() 135 static __always_inline bool in_irq_stack(unsigned long *stack, struct stack_info *info) in in_irq_stack() argument 153 if (stack < begin || stack >= end) in in_irq_stack() 170 bool noinstr get_stack_info_noinstr(unsigned long *stack, struct task_struct *task, in get_stack_info_noinstr() argument 173 if (in_task_stack(stack, task, info)) in get_stack_info_noinstr() 179 if (in_exception_stack(stack, info)) in get_stack_info_noinstr() 182 if (in_irq_stack(stack, info)) in get_stack_info_noinstr() 185 if (in_entry_stack(stack, info)) in get_stack_info_noinstr() 191 int get_stack_info(unsigned long *stack, struct task_struct *task, in get_stack_info() argument 196 if (!stack) in get_stack_info() [all …]
|
| /linux/tools/testing/selftests/bpf/prog_tests/ |
| A D | build_id.c | 16 switch (stack[i].status) { in print_stack() 23 printf("%02hhx", (unsigned)stack[i].build_id[j]); in print_stack() 24 printf(" OFFSET = %llx", (unsigned long long)stack[i].offset); in print_stack() 27 printf("IP = %llx", (unsigned long long)stack[i].ip); in print_stack() 30 printf("UNEXPECTED STATUS %d ", stack[i].status); in print_stack() 40 struct bpf_stack_build_id *stack; in subtest_nofault() local 59 stack = skel->bss->stack_nofault; in subtest_nofault() 62 print_stack(stack, frame_cnt); in subtest_nofault() 78 struct bpf_stack_build_id *stack; in subtest_sleepable() local 95 stack = skel->bss->stack_sleepable; in subtest_sleepable() [all …]
|
| /linux/Documentation/arch/x86/ |
| A D | shstk.rst | 14 CET introduces shadow stack and indirect branch tracking (IBT). A shadow stack 17 return address to both the normal stack and the shadow stack. Upon 98 ARCH_SHSTK_SHSTK - Shadow stack 103 if shadow stack is disabled. 123 of the clone3 syscall, there is a stack size passed in and shadow stack 130 the shadow stack stores only return addresses, a large shadow stack covers 131 the condition that both the program stack and the signal alternate stack run 135 shadow stack is enabled, the shadow stack specific state is pushed onto the 136 shadow stack. Today this is only the old SSP (shadow stack pointer), pushed 139 restorer address to the shadow stack to help userspace avoid a shadow stack [all …]
|
| A D | kernel-stacks.rst | 14 Like all other architectures, x86_64 has a kernel stack for every 17 zombie. While the thread is in user space the kernel stack is empty 25 * Interrupt stack. IRQ_STACK_SIZE 32 of every per thread stack. 34 The interrupt stack is also used when processing a softirq. 46 point to dedicated stacks; each stack can be a different size. 60 NMI. arch/x86_64/kernel/entry.S::paranoidentry adjusts the stack 83 assumptions about the previous state of the kernel stack. 93 stack. 106 assumptions about the previous state of the kernel stack. [all …]
|
| /linux/arch/s390/kernel/ |
| A D | dumpstack.c | 44 enum stack_type type, unsigned long stack) in in_stack() argument 46 if (sp < stack || sp >= stack + THREAD_SIZE) in in_stack() 49 info->begin = stack; in in_stack() 50 info->end = stack + THREAD_SIZE; in in_stack() 57 unsigned long stack = (unsigned long)task_stack_page(task); in in_task_stack() local 59 return in_stack(sp, info, STACK_TYPE_TASK, stack); in in_task_stack() 66 return in_stack(sp, info, STACK_TYPE_IRQ, stack); in in_irq_stack() 73 return in_stack(sp, info, STACK_TYPE_NODAT, stack); in in_nodat_stack() 80 return in_stack(sp, info, STACK_TYPE_MCCK, stack); in in_mcck_stack() 87 return in_stack(sp, info, STACK_TYPE_RESTART, stack); in in_restart_stack() [all …]
|
| /linux/arch/um/kernel/skas/ |
| A D | mmu.c | 25 unsigned long stack = 0; in init_new_context() local 28 stack = __get_free_pages(GFP_KERNEL | __GFP_ZERO, ilog2(STUB_DATA_PAGES)); in init_new_context() 29 if (stack == 0) in init_new_context() 32 new_id->stack = stack; in init_new_context() 35 new_id->pid = start_userspace(stack); in init_new_context() 70 if (new_id->stack != 0) in init_new_context() 71 free_pages(new_id->stack, ilog2(STUB_DATA_PAGES)); in init_new_context() 93 free_pages(mmu->id.stack, ilog2(STUB_DATA_PAGES)); in destroy_context()
|
| /linux/Documentation/mm/ |
| A D | vmalloced-kernel-stacks.rst | 21 Kernel stack overflows are often hard to debug and make the kernel 25 Virtually mapped kernel stacks with guard pages cause kernel stack 31 causes reliable faults when the stack overflows. The usability of 49 needs to work while the stack points to a virtual address with 52 are populated before running on a possibly unpopulated stack. 102 vmap stack allocator takes care of this detail. 123 Leading and trailing guard pages help detect stack overflows. When the stack 126 stack space is left. 129 stack overflow on the double-fault stack. 147 high-order stack allocation, at least when the cache hits. [all …]
|
| /linux/arch/nios2/kernel/ |
| A D | traps.c | 60 void show_stack(struct task_struct *task, unsigned long *stack, in show_stack() argument 66 if (!stack) { in show_stack() 68 stack = (unsigned long *)task->thread.ksp; in show_stack() 70 stack = (unsigned long *)&stack; in show_stack() 73 addr = (unsigned long) stack; in show_stack() 76 printk("%sStack from %08lx:", loglvl, (unsigned long)stack); in show_stack() 78 if (stack + 1 > endstack) in show_stack() 82 printk("%s %08lx", loglvl, *stack++); in show_stack() 87 while (stack + 1 <= endstack) { in show_stack() 88 addr = *stack++; in show_stack()
|
| /linux/arch/um/os-Linux/ |
| A D | helper.c | 46 unsigned long stack, sp; in run_helper() local 49 stack = alloc_stack(0, __uml_cant_sleep()); in run_helper() 50 if (stack == 0) in run_helper() 68 sp = stack + UM_KERN_PAGE_SIZE; in run_helper() 114 free_stack(stack, 0); in run_helper() 121 unsigned long stack, sp; in run_helper_thread() local 124 stack = alloc_stack(0, __uml_cant_sleep()); in run_helper_thread() 125 if (stack == 0) in run_helper_thread() 128 sp = stack + UM_KERN_PAGE_SIZE; in run_helper_thread() 147 free_stack(stack, 0); in run_helper_thread() [all …]
|
| /linux/arch/openrisc/kernel/ |
| A D | unwinder.c | 60 void unwind_stack(void *data, unsigned long *stack, in unwind_stack() argument 67 while (!kstack_end(stack)) { in unwind_stack() 68 frameinfo = container_of(stack, in unwind_stack() 83 stack++; in unwind_stack() 93 void unwind_stack(void *data, unsigned long *stack, in unwind_stack() argument 98 while (!kstack_end(stack)) { in unwind_stack() 99 addr = *stack++; in unwind_stack()
|
| /linux/mm/kmsan/ |
| A D | init.c | 150 static void smallstack_push(struct smallstack *stack, struct page *pages) in smallstack_push() argument 152 KMSAN_WARN_ON(stack->index == MAX_BLOCKS); in smallstack_push() 153 stack->items[stack->index] = pages; in smallstack_push() 154 stack->index++; in smallstack_push() 158 static struct page *smallstack_pop(struct smallstack *stack) in smallstack_pop() argument 162 KMSAN_WARN_ON(stack->index == 0); in smallstack_pop() 163 stack->index--; in smallstack_pop() 164 ret = stack->items[stack->index]; in smallstack_pop() 165 stack->items[stack->index] = NULL; in smallstack_pop()
|
| /linux/arch/um/kernel/ |
| A D | sysrq.c | 29 void show_stack(struct task_struct *task, unsigned long *stack, in show_stack() argument 41 if (!stack) in show_stack() 42 stack = get_stack_pointer(task, segv_regs); in show_stack() 46 if (kstack_end(stack)) in show_stack() 50 pr_cont(" %08lx", READ_ONCE_NOCHECK(*stack)); in show_stack() 51 stack++; in show_stack()
|
| /linux/include/linux/sched/ |
| A D | task_stack.h | 23 return task->stack; in task_stack_page() 31 return (unsigned long *)((unsigned long)task->stack + THREAD_SIZE) - 1; in end_of_stack() 33 return task->stack; in end_of_stack() 39 #define task_stack_page(task) ((void *)(task)->stack) 91 void *stack = task_stack_page(current); in object_is_on_stack() local 94 return (obj >= stack) && (obj < (stack + THREAD_SIZE)); in object_is_on_stack()
|
| /linux/tools/testing/selftests/vDSO/ |
| A D | vdso_standalone_test_x86.c | 87 void c_main(void **stack) in c_main() argument 90 long argc = (long)*stack; in c_main() 91 stack += argc + 2; in c_main() 94 while(*stack) in c_main() 95 stack++; in c_main() 96 stack++; in c_main() 99 vdso_init_from_auxv((void *)stack); in c_main()
|
| /linux/tools/perf/scripts/python/ |
| A D | stackcollapse.py | 97 stack = list() 103 stack.append(tidy_function_name(entry['sym']['name'], 108 stack.append(tidy_function_name(param_dict['symbol'], 119 stack.append(comm) 121 stack_string = ';'.join(reversed(stack)) 126 for stack in list: 127 print("%s %d" % (stack, lines[stack]))
|
| /linux/mm/ |
| A D | page_owner.c | 39 struct stack { struct 41 struct stack *next; argument 169 struct stack *stack; in add_stack_record_to_list() local 172 stack = kmalloc(sizeof(*stack), gfp_nested_mask(gfp_mask)); in add_stack_record_to_list() 173 if (!stack) { in add_stack_record_to_list() 858 struct stack *stack; in stack_start() local 875 return stack; in stack_start() 880 struct stack *stack = v; in stack_next() local 882 stack = stack->next; in stack_next() 886 return stack; in stack_next() [all …]
|
| /linux/arch/x86/include/asm/ |
| A D | stacktrace.h | 31 bool in_task_stack(unsigned long *stack, struct task_struct *task, 34 bool in_entry_stack(unsigned long *stack, struct stack_info *info); 36 int get_stack_info(unsigned long *stack, struct task_struct *task, 38 bool get_stack_info_noinstr(unsigned long *stack, struct task_struct *task, 42 bool get_stack_guard_info(unsigned long *stack, struct stack_info *info) in get_stack_guard_info() argument 45 if (get_stack_info_noinstr(stack, current, info)) in get_stack_guard_info() 48 return get_stack_info_noinstr((void *)stack + PAGE_SIZE, current, info); in get_stack_guard_info()
|
| /linux/tools/testing/selftests/mm/ |
| A D | pkey_sighandler_tests.c | 134 stack_t *stack = ptr; in thread_segv_maperr_ptr() local 239 void *stack; in test_sigsegv_handler_with_different_pkey_for_stack() local 254 stack = mmap(0, STACK_SIZE, PROT_READ | PROT_WRITE, in test_sigsegv_handler_with_different_pkey_for_stack() 257 assert(stack != MAP_FAILED); in test_sigsegv_handler_with_different_pkey_for_stack() 280 (long) ((char *)(stack) + STACK_SIZE), in test_sigsegv_handler_with_different_pkey_for_stack() 349 stack_t *stack = ptr; in thread_sigusr2_self() local 356 syscall(SYS_sigaltstack, (long)stack, 0, 0, 0, 0, 0); in thread_sigusr2_self() 383 void *stack; in test_pkru_sigreturn() local 410 stack = mmap(0, STACK_SIZE, PROT_READ | PROT_WRITE, in test_pkru_sigreturn() 413 assert(stack != MAP_FAILED); in test_pkru_sigreturn() [all …]
|
| /linux/scripts/kconfig/ |
| A D | symbol.c | 1056 memset(stack, 0, sizeof(*stack)); in dep_stack_insert() 1060 stack->sym = sym; in dep_stack_insert() 1061 check_top = stack; in dep_stack_insert() 1090 for (stack = check_top; stack != NULL; stack = stack->prev) in sym_check_print_recursive() 1093 if (!stack) { in sym_check_print_recursive() 1098 for (; stack; stack = stack->next) { in sym_check_print_recursive() 1099 sym = stack->sym; in sym_check_print_recursive() 1100 next_sym = stack->next ? stack->next->sym : last_sym; in sym_check_print_recursive() 1101 type = stack->prop ? stack->prop->type : P_UNKNOWN; in sym_check_print_recursive() 1202 stack.expr = NULL; in sym_check_sym_deps() [all …]
|
| /linux/arch/powerpc/kernel/ |
| A D | stacktrace.c | 44 unsigned long *stack = (unsigned long *) sp; in arch_stack_walk() local 50 newsp = stack[0]; in arch_stack_walk() 51 ip = stack[STACK_FRAME_LR_SAVE]; in arch_stack_walk() 96 unsigned long *stack = (unsigned long *) sp; in arch_stack_walk_reliable() local 103 newsp = stack[0]; in arch_stack_walk_reliable() 123 stack[STACK_INT_FRAME_MARKER_LONGS] == STACK_FRAME_REGS_MARKER) { in arch_stack_walk_reliable() 128 ip = stack[STACK_FRAME_LR_SAVE]; in arch_stack_walk_reliable() 136 ip = ftrace_graph_ret_addr(task, &graph_idx, ip, stack); in arch_stack_walk_reliable()
|