Lines Matching refs:trampoline
326 void *trampoline; in create_trampoline() local
354 trampoline = alloc_tramp(size + RET_SIZE + sizeof(void *)); in create_trampoline()
355 if (!trampoline) in create_trampoline()
362 ret = copy_from_kernel_nofault(trampoline, (void *)start_offset, size); in create_trampoline()
366 ip = trampoline + size; in create_trampoline()
377 ip = trampoline + (jmp_offset - start_offset); in create_trampoline()
393 ptr = (unsigned long *)(trampoline + size + RET_SIZE); in create_trampoline()
397 memcpy(&op_ptr, trampoline + op_offset, OP_REF_SIZE); in create_trampoline()
405 offset -= (unsigned long)trampoline + op_offset + OP_REF_SIZE; in create_trampoline()
410 memcpy(trampoline + op_offset, &op_ptr, OP_REF_SIZE); in create_trampoline()
415 memcpy(trampoline + call_offset, in create_trampoline()
417 trampoline + call_offset, in create_trampoline()
424 set_vm_flush_reset_perms(trampoline); in create_trampoline()
427 set_memory_ro((unsigned long)trampoline, npages); in create_trampoline()
428 set_memory_x((unsigned long)trampoline, npages); in create_trampoline()
429 return (unsigned long)trampoline; in create_trampoline()
431 tramp_free(trampoline); in create_trampoline()
457 set_memory_ro((unsigned long)ops->trampoline, npages); in set_ftrace_ops_ro()
485 if (!ops->trampoline) { in arch_ftrace_update_trampoline()
486 ops->trampoline = create_trampoline(ops, &size); in arch_ftrace_update_trampoline()
487 if (!ops->trampoline) in arch_ftrace_update_trampoline()
501 ip = ops->trampoline + offset; in arch_ftrace_update_trampoline()
543 if (ops && ops->trampoline) { in static_tramp_func()
549 if (ops->trampoline == FTRACE_GRAPH_ADDR) in static_tramp_func()
574 return addr_from_call((void *)ops->trampoline + offset); in arch_ftrace_trampoline_func()
582 tramp_free((void *)ops->trampoline); in arch_ftrace_trampoline_free()
583 ops->trampoline = 0; in arch_ftrace_trampoline_free()