/openbmc/linux/arch/um/os-Linux/skas/ |
H A D | mem.c | 28 if (stack == NULL) { in check_init_stack() 29 stack = (unsigned long *) mm_idp->stack + 2; in check_init_stack() 30 *stack = 0; in check_init_stack() 32 return stack; in check_init_stack() 116 stack += *stack / sizeof(long); in run_syscall_stub() 118 *stack++ = syscall; in run_syscall_stub() 119 *stack++ = args[0]; in run_syscall_stub() 120 *stack++ = args[1]; in run_syscall_stub() 126 *stack = 0; in run_syscall_stub() 130 *addr = stack; in run_syscall_stub() [all …]
|
/openbmc/linux/arch/x86/kernel/ |
H 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 …]
|
H 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 …]
|
H 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 …]
|
/openbmc/linux/drivers/misc/altera-stapl/ |
H 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 …]
|
/openbmc/linux/tools/testing/selftests/bpf/progs/ |
H 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() 33 return bpf_get_stack((void *)ctx, &stack, sizeof(stack), 0); in kprobe_struct_ctx_subprog() 48 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in kprobe_workaround_ctx_subprog() 64 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in raw_tp_ctx_subprog() 80 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in raw_tp_writable_ctx_subprog() 96 return bpf_get_stack(ctx, &stack, sizeof(stack), 0); in perf_event_ctx_subprog()
|
/openbmc/libbej/src/ |
H A D | bej_encoder_json.cpp | 13 auto stack = reinterpret_cast<std::vector<void*>*>(dataPtr); in stackPeek() local 14 if (stack->empty()) in stackPeek() 18 return stack->back(); in stackPeek() 23 auto stack = reinterpret_cast<std::vector<void*>*>(dataPtr); in stackPop() local 24 if (stack->empty()) in stackPop() 28 void* value = stack->back(); in stackPop() 29 stack->pop_back(); in stackPop() 35 auto stack = reinterpret_cast<std::vector<void*>*>(dataPtr); in stackPush() local 36 stack->emplace_back(property); in stackPush() 44 stack->insert(stack->end(), dataBuf, dataBuf + dataSize); in getBejEncodedBuffer() [all …]
|
H A D | bej_encoder_core.c | 233 return stack->stackPush(parent, stack->stackContext); in bejPushParentToStack() 273 struct BejPointerStackCallback* stack, in bejEncodeTree() argument 283 RETURN_IF_IERROR(bejPushParentToStack(root, stack)); in bejEncodeTree() 285 while (!stack->stackEmpty(stack->stackContext)) in bejEncodeTree() 288 stack->stackPeek(stack->stackContext); in bejEncodeTree() 302 if (parent != stack->stackPeek(stack->stackContext)) in bejEncodeTree() 306 stack->stackPop(stack->stackContext); in bejEncodeTree() 316 struct BejPointerStackCallback* stack) in bejEncode() argument 325 NULL_CHECK(stack, "stack"); in bejEncode() 348 dictionaries, majorSchemaStartingOffset, root, stack)); in bejEncode() [all …]
|
H A D | bej_decoder_json.cpp | 273 std::vector<BejStackProperty>* stack = in stackEmpty() local 275 return stack->empty(); in stackEmpty() 286 std::vector<BejStackProperty>* stack = in stackPeek() local 288 if (stack->empty()) in stackPeek() 292 return &(stack->back()); in stackPeek() 302 std::vector<BejStackProperty>* stack = in stackPop() local 304 if (stack->empty()) in stackPop() 308 stack->pop_back(); in stackPop() 321 std::vector<BejStackProperty>* stack = in stackPush() local 323 stack->push_back(*property); in stackPush() [all …]
|
/openbmc/linux/Documentation/arch/x86/ |
H 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 …]
|
H 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 …]
|
/openbmc/linux/arch/um/kernel/skas/ |
H A D | mmu.c | 21 unsigned long stack = 0; in init_new_context() local 24 stack = __get_free_pages(GFP_KERNEL | __GFP_ZERO, ilog2(STUB_DATA_PAGES)); in init_new_context() 25 if (stack == 0) in init_new_context() 28 to_mm->id.stack = stack; in init_new_context() 34 to_mm->id.u.pid = copy_context_skas0(stack, in init_new_context() 36 else to_mm->id.u.pid = start_userspace(stack); in init_new_context() 54 if (to_mm->id.stack != 0) in init_new_context() 55 free_pages(to_mm->id.stack, ilog2(STUB_DATA_PAGES)); in init_new_context() 77 free_pages(mmu->id.stack, ilog2(STUB_DATA_PAGES)); in destroy_context()
|
/openbmc/linux/arch/s390/kernel/ |
H 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 …]
|
/openbmc/linux/arch/nios2/kernel/ |
H 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()
|
/openbmc/linux/Documentation/mm/ |
H 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 causes 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 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 …]
|
/openbmc/linux/lib/ |
H A D | stackdepot.c | 262 struct stack_record *stack; in depot_alloc_stack() local 302 stack->hash = hash; in depot_alloc_stack() 303 stack->size = size; in depot_alloc_stack() 306 stack->handle.valid = 1; in depot_alloc_stack() 307 stack->handle.extra = 0; in depot_alloc_stack() 308 memcpy(stack->entries, entries, flex_array_size(stack, entries, size)); in depot_alloc_stack() 316 return stack; in depot_alloc_stack() 471 struct stack_record *stack; in stack_depot_fetch() local 491 stack = pool + offset; in stack_depot_fetch() 493 *entries = stack->entries; in stack_depot_fetch() [all …]
|
/openbmc/linux/arch/openrisc/kernel/ |
H 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()
|
/openbmc/linux/arch/um/os-Linux/ |
H 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 …]
|
/openbmc/linux/tools/testing/selftests/vDSO/ |
H A D | vdso_standalone_test_x86.c | 73 __attribute__((externally_visible)) void c_main(void **stack) in c_main() argument 76 long argc = (long)*stack; in c_main() 77 stack += argc + 2; in c_main() 80 while(*stack) in c_main() 81 stack++; in c_main() 82 stack++; in c_main() 85 vdso_init_from_auxv((void *)stack); in c_main()
|
/openbmc/linux/arch/um/kernel/ |
H A D | sysrq.c | 30 void show_stack(struct task_struct *task, unsigned long *stack, in show_stack() argument 42 if (!stack) in show_stack() 43 stack = get_stack_pointer(task, segv_regs); in show_stack() 47 if (kstack_end(stack)) in show_stack() 51 pr_cont(" %08lx", READ_ONCE_NOCHECK(*stack)); in show_stack() 52 stack++; in show_stack()
|
/openbmc/linux/mm/kmsan/ |
H A D | init.c | 147 static void smallstack_push(struct smallstack *stack, struct page *pages) in smallstack_push() argument 149 KMSAN_WARN_ON(stack->index == MAX_BLOCKS); in smallstack_push() 150 stack->items[stack->index] = pages; in smallstack_push() 151 stack->index++; in smallstack_push() 155 static struct page *smallstack_pop(struct smallstack *stack) in smallstack_pop() argument 159 KMSAN_WARN_ON(stack->index == 0); in smallstack_pop() 160 stack->index--; in smallstack_pop() 161 ret = stack->items[stack->index]; in smallstack_pop() 162 stack->items[stack->index] = NULL; in smallstack_pop()
|
/openbmc/linux/include/linux/sched/ |
H A D | task_stack.h | 21 return task->stack; in task_stack_page() 29 return (unsigned long *)((unsigned long)task->stack + THREAD_SIZE) - 1; in end_of_stack() 31 return task->stack; in end_of_stack() 37 #define task_stack_page(task) ((void *)(task)->stack) 89 void *stack = task_stack_page(current); in object_is_on_stack() local 91 return (obj >= stack) && (obj < (stack + THREAD_SIZE)); in object_is_on_stack()
|
/openbmc/linux/mm/kasan/ |
H A D | report_tags.c | 36 depot_stack_handle_t stack; in kasan_complete_mode_report_info() local 72 stack = READ_ONCE(entry->stack); in kasan_complete_mode_report_info() 84 info->free_track.stack = stack; in kasan_complete_mode_report_info() 99 info->alloc_track.stack = stack; in kasan_complete_mode_report_info()
|
/openbmc/linux/drivers/gpu/drm/i915/ |
H A D | intel_runtime_pm.c | 77 depot_stack_handle_t stack, *stacks; in track_intel_runtime_pm_wakeref() local 83 stack = __save_depot_stack(); in track_intel_runtime_pm_wakeref() 84 if (!stack) in track_intel_runtime_pm_wakeref() 90 rpm->debug.last_acquire = stack; in track_intel_runtime_pm_wakeref() 96 stacks[rpm->debug.count++] = stack; in track_intel_runtime_pm_wakeref() 99 stack = -1; in track_intel_runtime_pm_wakeref() 104 return stack; in track_intel_runtime_pm_wakeref() 108 depot_stack_handle_t stack) in untrack_intel_runtime_pm_wakeref() argument 116 if (unlikely(stack == -1)) in untrack_intel_runtime_pm_wakeref() 121 if (rpm->debug.owners[n] == stack) { in untrack_intel_runtime_pm_wakeref() [all …]
|
/openbmc/linux/tools/perf/scripts/python/ |
H 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]))
|