/kernel/linux/linux-5.10/arch/powerpc/kernel/trace/ |
H A D | ftrace.c | 36 * We generally only have a single long_branch tramp and at most 2 or 3 plt 128 unsigned long entry, ptr, tramp; in __ftrace_make_nop() local 145 tramp = find_bl_target(ip, op); in __ftrace_make_nop() 147 pr_devel("ip:%lx jumps to %lx", ip, tramp); in __ftrace_make_nop() 149 if (module_trampoline_target(mod, tramp, &ptr)) { in __ftrace_make_nop() 183 * bl <tramp> in __ftrace_make_nop() 227 unsigned long tramp; in __ftrace_make_nop() local 239 tramp = find_bl_target(ip, op); in __ftrace_make_nop() 249 pr_devel("ip:%lx jumps to %lx", ip, tramp); in __ftrace_make_nop() 252 if (copy_from_kernel_nofault(jmp, (void *)tramp, sizeo in __ftrace_make_nop() 310 add_ftrace_tramp(unsigned long tramp) add_ftrace_tramp() argument 329 setup_mcount_compiler_tramp(unsigned long tramp) setup_mcount_compiler_tramp() argument 396 unsigned long tramp, ip = rec->ip; __ftrace_make_nop_kernel() local 523 unsigned long entry, ptr, tramp; global() local 630 unsigned long tramp, entry, ptr; global() local 717 unsigned long entry, ptr, tramp; global() local 897 unsigned int *tramp[] = { ftrace_tramp_text, ftrace_tramp_init }; global() local [all...] |
/kernel/linux/linux-6.6/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 118 unsigned long entry, ptr, tramp; in __ftrace_make_nop() local 135 tramp = find_bl_target(ip, op); in __ftrace_make_nop() 137 pr_devel("ip:%lx jumps to %lx", ip, tramp); in __ftrace_make_nop() 139 if (module_trampoline_target(mod, tramp, &ptr)) { in __ftrace_make_nop() 188 * bl <tramp> in __ftrace_make_nop() 234 static int add_ftrace_tramp(unsigned long tramp) in add_ftrace_tramp() argument 240 ftrace_tramps[i] = tramp; in add_ftrace_tramp() 253 static int setup_mcount_compiler_tramp(unsigned long tramp) in setup_mcount_compiler_tramp() argument 259 /* Is this a known long jump tramp in setup_mcount_compiler_tramp() 305 unsigned long tramp, ip = rec->ip; __ftrace_make_nop_kernel() local 408 unsigned long entry, ptr, tramp; __ftrace_make_call() local 469 unsigned long tramp, entry, ptr; __ftrace_make_call_kernel() local 552 unsigned long entry, ptr, tramp; __ftrace_modify_call() local 727 unsigned int *tramp[] = { ftrace_tramp_text, ftrace_tramp_init }; ftrace_dyn_arch_init() local [all...] |
H A D | ftrace.c | 108 stub = (addr == (unsigned long)ftrace_caller ? rec->arch.mod->arch.tramp : in ftrace_get_call_inst() 328 static void __init add_ftrace_tramp(unsigned long tramp) in add_ftrace_tramp() argument 334 ftrace_tramps[i] = tramp; in add_ftrace_tramp() 341 unsigned int *tramp[] = { ftrace_tramp_text, ftrace_tramp_init }; in ftrace_dyn_arch_init() local 368 reladdr = addr - (unsigned long)tramp[i]; in ftrace_dyn_arch_init() 376 memcpy(tramp[i], stub_insns, sizeof(stub_insns)); in ftrace_dyn_arch_init() 377 tramp[i][0] |= IMM_H18(reladdr); in ftrace_dyn_arch_init() 378 tramp[i][1] |= IMM_L(reladdr); in ftrace_dyn_arch_init() 379 add_ftrace_tramp((unsigned long)tramp[i]); in ftrace_dyn_arch_init() 391 memcpy(tramp[ in ftrace_dyn_arch_init() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/kernel/ |
H A D | static_call.c | 7 void arch_static_call_transform(void *site, void *tramp, void *func, bool tail) in arch_static_call_transform() argument 11 unsigned long target = (unsigned long)(is_ret0 ? tramp + PPC_SCT_RET0 : func); in arch_static_call_transform() 12 bool is_short = is_offset_in_branch_range((long)target - (long)tramp); in arch_static_call_transform() 14 if (!tramp) in arch_static_call_transform() 20 err = patch_instruction(tramp + PPC_SCT_DATA, ppc_inst(target)); in arch_static_call_transform() 26 err = patch_instruction(tramp, ppc_inst(PPC_RAW_BLR())); in arch_static_call_transform() 28 err = patch_branch(tramp, target, 0); in arch_static_call_transform() 30 err = patch_instruction(tramp, ppc_inst(PPC_RAW_NOP())); in arch_static_call_transform() 35 panic("%s: patching failed %pS at %pS\n", __func__, func, tramp); in arch_static_call_transform()
|
H A D | signal_64.c | 61 unsigned int tramp[TRAMP_SIZE]; member 624 static long setup_trampoline(unsigned int syscall, unsigned int __user *tramp) in setup_trampoline() argument 630 err |= __put_user(PPC_RAW_BCTRL(), &tramp[0]); in setup_trampoline() 631 err |= __put_user(PPC_RAW_ADDI(_R1, _R1, __SIGNAL_FRAMESIZE), &tramp[1]); in setup_trampoline() 633 err |= __put_user(PPC_RAW_LI(_R0, syscall), &tramp[2]); in setup_trampoline() 634 err |= __put_user(PPC_RAW_SC(), &tramp[3]); in setup_trampoline() 638 err |= __put_user(0, &tramp[i]); in setup_trampoline() 641 flush_icache_range((unsigned long) &tramp[0], in setup_trampoline() 642 (unsigned long) &tramp[TRAMP_SIZE]); in setup_trampoline() 927 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[ in handle_rt_signal64() [all...] |
/kernel/linux/linux-6.6/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) in __static_call_validate() argument 118 if (tramp && memcmp(insn+5, tramp_ud, 3)) { in __static_call_validate() 157 void arch_static_call_transform(void *site, void *tramp, void *func, bool tail) in arch_static_call_transform() argument 161 if (tramp) { in arch_static_call_transform() 162 __static_call_validate(tramp, true, true); in arch_static_call_transform() 163 __static_call_transform(tramp, __sc_insn(!func, true), func, false); in arch_static_call_transform() 187 bool __static_call_fixup(void *tramp, u8 op, void *dest) in __static_call_fixup() argument 189 unsigned long addr = (unsigned long)tramp; in __static_call_fixup() [all...] |
/kernel/linux/linux-5.10/arch/x86/kernel/ |
H A D | static_call.c | 10 JMP = 2, /* tramp / site tail-call */ 11 RET = 3, /* tramp / site cond-tail-call */ 94 void arch_static_call_transform(void *site, void *tramp, void *func, bool tail) in arch_static_call_transform() argument 98 if (tramp) { in arch_static_call_transform() 99 __static_call_validate(tramp, true); in arch_static_call_transform() 100 __static_call_transform(tramp, __sc_insn(!func, true), func, false); in arch_static_call_transform() 124 bool __static_call_fixup(void *tramp, u8 op, void *dest) in __static_call_fixup() argument 126 unsigned long addr = (unsigned long)tramp; in __static_call_fixup() 139 if (memcmp(tramp+5, tramp_ud, 3)) { in __static_call_fixup() 146 __static_call_transform(tramp, RE in __static_call_fixup() [all...] |
/kernel/linux/linux-5.10/include/linux/ |
H A D | static_call.h | 104 * Either @site or @tramp can be NULL. 106 extern void arch_static_call_transform(void *site, void *tramp, void *func, bool tail); 143 s32 tramp; member 147 extern void __static_call_update(struct static_call_key *key, void *tramp, void *func); 209 void __static_call_update(struct static_call_key *key, void *tramp, void *func) in __static_call_update() argument 213 arch_static_call_transform(NULL, tramp, func, false); in __static_call_update() 280 void __static_call_update(struct static_call_key *key, void *tramp, void *func) in __static_call_update() argument
|
/kernel/linux/linux-6.6/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 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) in __static_call_update() argument 258 arch_static_call_transform(NULL, tramp, func, false); in __static_call_update() 331 void __static_call_update(struct static_call_key *key, void *tramp, void *func) in __static_call_update() argument
|
/kernel/linux/linux-5.10/arch/loongarch/kernel/ |
H A D | module-sections.c | 108 Elf_Shdr *got_sec, *plt_sec, *plt_idx_sec, *tramp = NULL; in module_frob_arch_sections() local 121 tramp = sechdrs + i; in module_frob_arch_sections() 177 if (tramp) { in module_frob_arch_sections() 178 tramp->sh_type = SHT_NOBITS; in module_frob_arch_sections() 179 tramp->sh_flags = SHF_EXECINSTR | SHF_ALLOC; in module_frob_arch_sections() 180 tramp->sh_addralign = __alignof__(struct plt_entry); in module_frob_arch_sections() 181 tramp->sh_size = NR_FTRACE_PLTS * sizeof(struct plt_entry); in module_frob_arch_sections()
|
/kernel/linux/linux-6.6/arch/loongarch/kernel/ |
H A D | module-sections.c | 108 Elf_Shdr *got_sec, *plt_sec, *plt_idx_sec, *tramp = NULL; in module_frob_arch_sections() local 121 tramp = sechdrs + i; in module_frob_arch_sections() 177 if (tramp) { in module_frob_arch_sections() 178 tramp->sh_type = SHT_NOBITS; in module_frob_arch_sections() 179 tramp->sh_flags = SHF_EXECINSTR | SHF_ALLOC; in module_frob_arch_sections() 180 tramp->sh_addralign = __alignof__(struct plt_entry); in module_frob_arch_sections() 181 tramp->sh_size = NR_FTRACE_PLTS * sizeof(struct plt_entry); in module_frob_arch_sections()
|
/kernel/linux/linux-5.10/arch/microblaze/kernel/ |
H A D | signal.c | 48 unsigned long tramp[2]; /* signal trampoline */ member 54 unsigned long tramp[2]; /* signal trampoline */ member 186 frame->tramp + 0); in setup_rt_frame() 188 err |= __put_user(0xb9cc0008, frame->tramp + 1); in setup_rt_frame() 190 /* Return from sighandler will jump to the tramp. in setup_rt_frame() 192 regs->r15 = ((unsigned long)frame->tramp)-8; in setup_rt_frame() 194 address = ((unsigned long)frame->tramp); in setup_rt_frame() 203 address += ((unsigned long)frame->tramp) & ~PAGE_MASK; in setup_rt_frame()
|
/kernel/linux/linux-6.6/arch/microblaze/kernel/ |
H A D | signal.c | 48 unsigned long tramp[2]; /* signal trampoline */ member 54 unsigned long tramp[2]; /* signal trampoline */ member 184 frame->tramp + 0); in setup_rt_frame() 186 err |= __put_user(0xb9cc0008, frame->tramp + 1); in setup_rt_frame() 188 /* Return from sighandler will jump to the tramp. in setup_rt_frame() 190 regs->r15 = ((unsigned long)frame->tramp)-8; in setup_rt_frame() 192 address = ((unsigned long)frame->tramp); in setup_rt_frame() 200 address += ((unsigned long)frame->tramp) & ~PAGE_MASK; in setup_rt_frame()
|
/kernel/linux/linux-5.10/arch/parisc/kernel/ |
H A D | ftrace.c | 121 u32 *tramp; in ftrace_make_call() local 165 tramp = ftrace_trampoline; in ftrace_make_call() 170 tramp = ftrace_trampoline_unaligned; in ftrace_make_call() 185 __patch_text_multiple(ip, tramp, size); in ftrace_make_call()
|
H A D | signal.c | 284 already in userspace. The first words of tramp are used to in setup_rt_frame() 289 &frame->tramp[SIGRESTARTBLOCK_TRAMP+0]); in setup_rt_frame() 291 &frame->tramp[SIGRESTARTBLOCK_TRAMP+1]); in setup_rt_frame() 293 &frame->tramp[SIGRESTARTBLOCK_TRAMP+2]); in setup_rt_frame() 294 err |= __put_user(INSN_NOP, &frame->tramp[SIGRESTARTBLOCK_TRAMP+3]); in setup_rt_frame() 302 sid, frame->tramp); in setup_rt_frame() 306 start = (unsigned long) &frame->tramp[0]; in setup_rt_frame() 307 end = (unsigned long) &frame->tramp[TRAMP_SIZE]; in setup_rt_frame() 315 rp = (unsigned long) &frame->tramp[SIGRESTARTBLOCK_TRAMP]; in setup_rt_frame()
|
/kernel/linux/linux-6.6/arch/parisc/kernel/ |
H A D | ftrace.c | 116 u32 *tramp; in ftrace_make_call() local 160 tramp = ftrace_trampoline; in ftrace_make_call() 165 tramp = ftrace_trampoline_unaligned; in ftrace_make_call() 180 __patch_text_multiple(ip, tramp, size); in ftrace_make_call()
|
/kernel/linux/linux-5.10/arch/powerpc/kernel/ |
H A D | signal_32.c | 203 #define tramp mc_pad macro 325 if (__put_user(PPC_INST_ADDI + sigret, &frame->tramp[0]) in save_user_regs() 326 || __put_user(PPC_INST_SC, &frame->tramp[1])) in save_user_regs() 328 flush_icache_range((unsigned long) &frame->tramp[0], in save_user_regs() 329 (unsigned long) &frame->tramp[2]); in save_user_regs() 466 if (__put_user(PPC_INST_ADDI + sigret, &frame->tramp[0]) in save_tm_user_regs() 467 || __put_user(PPC_INST_SC, &frame->tramp[1])) in save_tm_user_regs() 469 flush_icache_range((unsigned long) &frame->tramp[0], in save_tm_user_regs() 470 (unsigned long) &frame->tramp[2]); in save_tm_user_regs() 760 unsigned long tramp; in handle_rt_signal32() local 1221 unsigned long tramp; handle_signal32() local [all...] |
H A D | signal_64.c | 61 unsigned int tramp[TRAMP_SIZE]; member 599 static long setup_trampoline(unsigned int syscall, unsigned int __user *tramp) in setup_trampoline() argument 605 err |= __put_user(PPC_INST_BCTRL, &tramp[0]); in setup_trampoline() 608 (__SIGNAL_FRAMESIZE & 0xffff), &tramp[1]); in setup_trampoline() 610 err |= __put_user(PPC_INST_ADDI | (syscall & 0xffff), &tramp[2]); in setup_trampoline() 612 err |= __put_user(PPC_INST_SC, &tramp[3]); in setup_trampoline() 616 err |= __put_user(0, &tramp[i]); in setup_trampoline() 619 flush_icache_range((unsigned long) &tramp[0], in setup_trampoline() 620 (unsigned long) &tramp[TRAMP_SIZE]); in setup_trampoline() 870 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[ in handle_rt_signal64() [all...] |
/kernel/linux/linux-5.10/arch/arm64/kernel/ |
H A D | module-plts.c | 297 Elf_Shdr *pltsec, *tramp = NULL; in module_frob_arch_sections() local 311 tramp = sechdrs + i; in module_frob_arch_sections() 370 if (tramp) { in module_frob_arch_sections() 371 tramp->sh_type = SHT_NOBITS; in module_frob_arch_sections() 372 tramp->sh_flags = SHF_EXECINSTR | SHF_ALLOC; in module_frob_arch_sections() 373 tramp->sh_addralign = __alignof__(struct plt_entry); in module_frob_arch_sections() 374 tramp->sh_size = NR_FTRACE_PLTS * sizeof(struct plt_entry); in module_frob_arch_sections()
|
/kernel/linux/linux-6.6/arch/arm64/kernel/ |
H A D | module-plts.c | 287 Elf_Shdr *pltsec, *tramp = NULL; in module_frob_arch_sections() local 301 tramp = sechdrs + i; in module_frob_arch_sections() 360 if (tramp) { in module_frob_arch_sections() 361 tramp->sh_type = SHT_NOBITS; in module_frob_arch_sections() 362 tramp->sh_flags = SHF_EXECINSTR | SHF_ALLOC; in module_frob_arch_sections() 363 tramp->sh_addralign = __alignof__(struct plt_entry); in module_frob_arch_sections() 364 tramp->sh_size = NR_FTRACE_PLTS * sizeof(struct plt_entry); in module_frob_arch_sections()
|
/kernel/linux/linux-5.10/kernel/ |
H A D | static_call.c | 123 void __static_call_update(struct static_call_key *key, void *tramp, void *func) in __static_call_update() argument 136 arch_static_call_transform(NULL, tramp, func, false); in __static_call_update() 343 unsigned long tramp; in tramp_key_lookup() local 345 tramp = (long)tramp_key->tramp + (long)&tramp_key->tramp; in tramp_key_lookup() 346 if (tramp == addr) in tramp_key_lookup()
|
/kernel/linux/linux-6.6/kernel/ |
H A D | static_call_inline.c | 134 void __static_call_update(struct static_call_key *key, void *tramp, void *func) in __static_call_update() argument 147 arch_static_call_transform(NULL, tramp, func, false); in __static_call_update() 354 unsigned long tramp; in tramp_key_lookup() local 356 tramp = (long)tramp_key->tramp + (long)&tramp_key->tramp; in tramp_key_lookup() 357 if (tramp == addr) in tramp_key_lookup()
|
/kernel/linux/linux-5.10/arch/powerpc/perf/ |
H A D | callchain_64.c | 59 unsigned int tramp[6]; member 68 if (nip == fp + offsetof(struct signal_frame_64, tramp)) in is_sigreturn_64_address()
|
/kernel/linux/linux-6.6/arch/powerpc/perf/ |
H A D | callchain_64.c | 33 unsigned int tramp[6]; member 42 if (nip == fp + offsetof(struct signal_frame_64, tramp)) in is_sigreturn_64_address()
|
/kernel/linux/linux-6.6/arch/parisc/include/asm/ |
H A D | rt_sigframe.h | 6 unsigned int tramp[2]; /* holds original return address */ member
|