Lines Matching refs:trampoline
747 void *trampoline; in create_trampoline() local
770 trampoline = alloc_tramp(size + MCOUNT_INSN_SIZE + sizeof(void *)); in create_trampoline()
771 if (!trampoline) in create_trampoline()
777 ret = probe_kernel_read(trampoline, (void *)start_offset, size); in create_trampoline()
779 tramp_free(trampoline, *tramp_size); in create_trampoline()
783 ip = (unsigned long)trampoline + size; in create_trampoline()
787 memcpy(trampoline + size, jmp, MCOUNT_INSN_SIZE); in create_trampoline()
797 ptr = (unsigned long *)(trampoline + size + MCOUNT_INSN_SIZE); in create_trampoline()
801 memcpy(&op_ptr, trampoline + op_offset, OP_REF_SIZE); in create_trampoline()
805 tramp_free(trampoline, *tramp_size); in create_trampoline()
811 offset -= (unsigned long)trampoline + op_offset + OP_REF_SIZE; in create_trampoline()
816 memcpy(trampoline + op_offset, &op_ptr, OP_REF_SIZE); in create_trampoline()
821 return (unsigned long)trampoline; in create_trampoline()
849 if (ops->trampoline) { in arch_ftrace_update_trampoline()
857 set_memory_rw(ops->trampoline, npages); in arch_ftrace_update_trampoline()
859 ops->trampoline = create_trampoline(ops, &size); in arch_ftrace_update_trampoline()
860 if (!ops->trampoline) in arch_ftrace_update_trampoline()
867 ip = ops->trampoline + offset; in arch_ftrace_update_trampoline()
874 set_memory_ro(ops->trampoline, npages); in arch_ftrace_update_trampoline()
912 if (ops && ops->trampoline) { in static_tramp_func()
918 if (ops->trampoline == FTRACE_GRAPH_ADDR) in static_tramp_func()
943 return addr_from_call((void *)ops->trampoline + offset); in arch_ftrace_trampoline_func()
951 tramp_free((void *)ops->trampoline, ops->trampoline_size); in arch_ftrace_trampoline_free()
952 ops->trampoline = 0; in arch_ftrace_trampoline_free()