/linux-master/arch/powerpc/kernel/ |
H A D | static_call.c | 7 void arch_static_call_transform(void *site, void *tramp, void *func, bool tail) argument 11 unsigned long target = (unsigned long)(is_ret0 ? tramp + PPC_SCT_RET0 : func); 12 bool is_short = is_offset_in_branch_range((long)target - (long)tramp); 14 if (!tramp) 20 err = patch_instruction(tramp + PPC_SCT_DATA, ppc_inst(target)); 26 err = patch_instruction(tramp, ppc_inst(PPC_RAW_BLR())); 28 err = patch_branch(tramp, target, 0); 30 err = patch_instruction(tramp, ppc_inst(PPC_RAW_NOP())); 35 panic("%s: patching failed %pS at %pS\n", __func__, func, tramp);
|
H A D | signal_64.c | 61 unsigned int tramp[TRAMP_SIZE]; member in struct:rt_sigframe 624 static long setup_trampoline(unsigned int syscall, unsigned int __user *tramp) argument 630 err |= __put_user(PPC_RAW_BCTRL(), &tramp[0]); 631 err |= __put_user(PPC_RAW_ADDI(_R1, _R1, __SIGNAL_FRAMESIZE), &tramp[1]); 633 err |= __put_user(PPC_RAW_LI(_R0, syscall), &tramp[2]); 634 err |= __put_user(PPC_RAW_SC(), &tramp[3]); 638 err |= __put_user(0, &tramp[i]); 641 flush_icache_range((unsigned long) &tramp[0], 642 (unsigned long) &tramp[TRAMP_SIZE]); 927 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[ [all...] |
H A D | signal_32.c | 743 unsigned long tramp; local 786 tramp = VDSO32_SYMBOL(tsk->mm->context.vdso, sigtramp_rt32); 788 tramp = (unsigned long)mctx->mc_pad; 800 regs->link = tramp; 843 unsigned long tramp; local 882 tramp = VDSO32_SYMBOL(tsk->mm->context.vdso, sigtramp32); 884 tramp = (unsigned long)mctx->mc_pad; 891 regs->link = tramp;
|
H A D | module_32.c | 324 module->arch.tramp = do_plt_call(module->mem[MOD_TEXT].base, 327 if (!module->arch.tramp)
|
H A D | vmlinux.lds.S | 110 *(.tramp.ftrace.text); 277 *(.tramp.ftrace.init);
|
H A D | module_64.c | 1091 mod->arch.tramp = stub_for_addr(sechdrs, 1104 if (!mod->arch.tramp)
|
/linux-master/arch/parisc/include/asm/ |
H A D | rt_sigframe.h | 6 unsigned int tramp[2]; /* holds original return address */ member in struct:rt_sigframe
|
/linux-master/arch/powerpc/kernel/trace/ |
H A D | ftrace_64_pg.c | 32 * We generally only have a single long_branch tramp and at most 2 or 3 plt 123 unsigned long entry, ptr, tramp; local 140 tramp = find_bl_target(ip, op); 142 pr_devel("ip:%lx jumps to %lx", ip, tramp); 144 if (module_trampoline_target(mod, tramp, &ptr)) { 193 * bl <tramp> 239 static int add_ftrace_tramp(unsigned long tramp) argument 245 ftrace_tramps[i] = tramp; 258 static int setup_mcount_compiler_tramp(unsigned long tramp) argument 264 /* Is this a known long jump tramp 310 unsigned long tramp, ip = rec->ip; local 413 unsigned long entry, ptr, tramp; local 474 unsigned long tramp, entry, ptr; local 557 unsigned long entry, ptr, tramp; local 732 unsigned int *tramp[] = { ftrace_tramp_text, ftrace_tramp_init }; local [all...] |
H A D | ftrace.c | 120 stub = (addr == (unsigned long)ftrace_caller ? rec->arch.mod->arch.tramp : 340 static void __init add_ftrace_tramp(unsigned long tramp) argument 346 ftrace_tramps[i] = tramp; 353 unsigned int *tramp[] = { ftrace_tramp_text, ftrace_tramp_init }; local 380 reladdr = addr - (unsigned long)tramp[i]; 388 memcpy(tramp[i], stub_insns, sizeof(stub_insns)); 389 tramp[i][0] |= IMM_H18(reladdr); 390 tramp[i][1] |= IMM_L(reladdr); 391 add_ftrace_tramp((unsigned long)tramp[i]); 403 memcpy(tramp[ [all...] |
/linux-master/arch/x86/kernel/ |
H A D | static_call.c | 10 JMP = 2, /* tramp / site tail-call */ 11 RET = 3, /* tramp / site cond-tail-call */ 114 static void __static_call_validate(u8 *insn, bool tail, bool tramp) argument 118 if (tramp && memcmp(insn+5, tramp_ud, 3)) { 157 void arch_static_call_transform(void *site, void *tramp, void *func, bool tail) argument 161 if (tramp) { 162 __static_call_validate(tramp, true, true); 163 __static_call_transform(tramp, __sc_insn(!func, true), func, false); 187 bool __static_call_fixup(void *tramp, u8 op, void *dest) argument 189 unsigned long addr = (unsigned long)tramp; [all...] |
H A D | ftrace.c | 268 static inline void tramp_free(void *tramp) argument 270 execmem_free(tramp);
|
/linux-master/include/linux/ |
H A D | static_call.h | 142 * Either @site or @tramp can be NULL. 144 extern void arch_static_call_transform(void *site, void *tramp, void *func, bool tail); 175 s32 tramp; member in struct:static_call_tramp_key 179 extern void __static_call_update(struct static_call_key *key, void *tramp, void *func); 254 void __static_call_update(struct static_call_key *key, void *tramp, void *func) argument 258 arch_static_call_transform(NULL, tramp, func, false); 331 void __static_call_update(struct static_call_key *key, void *tramp, void *func) argument
|
/linux-master/arch/x86/include/asm/ |
H A D | static_call.h | 66 extern bool __static_call_fixup(void *tramp, u8 op, void *dest);
|
/linux-master/arch/powerpc/include/asm/ |
H A D | module.h | 48 unsigned long tramp; member in struct:mod_arch_specific
|
/linux-master/arch/loongarch/kernel/ |
H A D | module-sections.c | 108 Elf_Shdr *got_sec, *plt_sec, *plt_idx_sec, *tramp = NULL; local 121 tramp = sechdrs + i; 177 if (tramp) { 178 tramp->sh_type = SHT_NOBITS; 179 tramp->sh_flags = SHF_EXECINSTR | SHF_ALLOC; 180 tramp->sh_addralign = __alignof__(struct plt_entry); 181 tramp->sh_size = NR_FTRACE_PLTS * sizeof(struct plt_entry);
|
/linux-master/arch/parisc/kernel/ |
H A D | signal32.h | 40 unsigned int tramp[2]; /* holds original return address */ member in struct:compat_rt_sigframe
|
H A D | ftrace.c | 116 u32 *tramp; local 160 tramp = ftrace_trampoline; 165 tramp = ftrace_trampoline_unaligned; 180 __patch_text_multiple(ip, tramp, size);
|
/linux-master/arch/microblaze/kernel/ |
H A D | signal.c | 48 unsigned long tramp[2]; /* signal trampoline */ member in struct:sigframe 54 unsigned long tramp[2]; /* signal trampoline */ member in struct:rt_sigframe 184 frame->tramp + 0); 186 err |= __put_user(0xb9cc0008, frame->tramp + 1); 188 /* Return from sighandler will jump to the tramp. 190 regs->r15 = ((unsigned long)frame->tramp)-8; 192 address = ((unsigned long)frame->tramp); 200 address += ((unsigned long)frame->tramp) & ~PAGE_MASK;
|
/linux-master/arch/arm64/kernel/ |
H A D | module-plts.c | 286 Elf_Shdr *pltsec, *tramp = NULL; local 300 tramp = sechdrs + i; 359 if (tramp) { 360 tramp->sh_type = SHT_NOBITS; 361 tramp->sh_flags = SHF_EXECINSTR | SHF_ALLOC; 362 tramp->sh_addralign = __alignof__(struct plt_entry); 363 tramp->sh_size = NR_FTRACE_PLTS * sizeof(struct plt_entry);
|
H A D | vmlinux.lds.S | 118 *(.entry.tramp.text) \ 121 *(.entry.tramp.rodata)
|
H A D | entry.S | 105 .set .Lalias\@, TRAMP_VALIAS + \sym - .entry.tramp.text 660 .pushsection ".entry.tramp.rodata", "a", %progbits 760 .pushsection ".entry.tramp.text", "ax" 777 .popsection // .entry.tramp.text 926 .pushsection ".entry.tramp.text", "ax" 960 .popsection // .entry.tramp.text
|
/linux-master/arch/powerpc/perf/ |
H A D | callchain_64.c | 33 unsigned int tramp[6]; member in struct:signal_frame_64 42 if (nip == fp + offsetof(struct signal_frame_64, tramp))
|
/linux-master/kernel/ |
H A D | static_call_inline.c | 134 void __static_call_update(struct static_call_key *key, void *tramp, void *func) argument 147 arch_static_call_transform(NULL, tramp, func, false); 354 unsigned long tramp; local 356 tramp = (long)tramp_key->tramp + (long)&tramp_key->tramp; 357 if (tramp == addr)
|
/linux-master/arch/hexagon/kernel/ |
H A D | signal.c | 22 unsigned long tramp[2]; member in struct:rt_sigframe 114 err |= __put_user(0x7800d166, &frame->tramp[0]); 115 err |= __put_user(0x5400c004, &frame->tramp[1]);
|
/linux-master/arch/x86/platform/efi/ |
H A D | efi_64.c | 180 unsigned long pfn, text, pf, rodata, tramp; local 258 tramp = __pa(__efi64_thunk_ret_tramp); 259 pfn = tramp >> PAGE_SHIFT; 262 if (kernel_map_pages_in_pgd(pgd, pfn, tramp, 1, pf)) {
|