Lines Matching refs:trampoline
315 void *trampoline; in create_trampoline() local
344 trampoline = alloc_tramp(size + RET_SIZE + sizeof(void *)); in create_trampoline()
345 if (!trampoline) in create_trampoline()
352 ret = copy_from_kernel_nofault(trampoline, (void *)start_offset, size); in create_trampoline()
356 ip = trampoline + size; in create_trampoline()
365 ip = trampoline + (jmp_offset - start_offset); in create_trampoline()
381 ptr = (unsigned long *)(trampoline + size + RET_SIZE); in create_trampoline()
385 memcpy(&op_ptr, trampoline + op_offset, OP_REF_SIZE); in create_trampoline()
393 offset -= (unsigned long)trampoline + op_offset + OP_REF_SIZE; in create_trampoline()
398 memcpy(trampoline + op_offset, &op_ptr, OP_REF_SIZE); in create_trampoline()
408 memcpy(trampoline + call_offset, in create_trampoline()
409 text_gen_insn(CALL_INSN_OPCODE, trampoline + call_offset, dest), in create_trampoline()
416 set_memory_rox((unsigned long)trampoline, npages); in create_trampoline()
417 return (unsigned long)trampoline; in create_trampoline()
419 tramp_free(trampoline); in create_trampoline()
445 set_memory_ro((unsigned long)ops->trampoline, npages); in set_ftrace_ops_ro()
473 if (!ops->trampoline) { in arch_ftrace_update_trampoline()
474 ops->trampoline = create_trampoline(ops, &size); in arch_ftrace_update_trampoline()
475 if (!ops->trampoline) in arch_ftrace_update_trampoline()
489 ip = ops->trampoline + offset; in arch_ftrace_update_trampoline()
528 if (ops && ops->trampoline) { in static_tramp_func()
535 if (ops->trampoline == FTRACE_GRAPH_ADDR) in static_tramp_func()
560 return addr_from_call((void *)ops->trampoline + offset); in arch_ftrace_trampoline_func()
568 tramp_free((void *)ops->trampoline); in arch_ftrace_trampoline_free()
569 ops->trampoline = 0; in arch_ftrace_trampoline_free()