Lines Matching refs:trampoline
30 /* serializes access to trampoline tables */
34 * Keep 32 trampoline locks (5 bits) in the pool so trampoline_lock_all()
110 * trampoline's mutex is already locked.
114 /* Instead of updating the trampoline here, we propagate
117 * trampoline.
294 * We allocate ftrace_ops object for each trampoline and it contains
295 * call site specific for that trampoline.
575 /* the case of fmod_ret/fexit trampoline and CONFIG_PREEMPTION=y */
578 /* the case of fentry trampoline */
584 /* The trampoline image that calls original function is using:
587 * percpu_ref to protect trampoline itself
588 * rcu tasks to protect trampoline asm not covered by percpu_ref
592 * The trampoline is unreachable before bpf_tramp_image_put().
594 * First, patch the trampoline to avoid calling into fexit progs.
600 * Then use percpu_ref_kill to wait for the trampoline and the original
603 * the trampoline epilogue are done as well.
622 /* The trampoline without fexit and fmod_ret progs doesn't call original
625 * Then use call_rcu_tasks() to wait for the rest of trampoline asm
716 /* Use "jmp" instead of "call" for the trampoline
764 * trampoline again, and retry register.
1001 /* paired with 'shim_link->trampoline = tr' in bpf_trampoline_link_cgroup_shim */
1002 if (!shim_link->trampoline)
1005 WARN_ON_ONCE(bpf_trampoline_unlink_prog(&shim_link->link.node, shim_link->trampoline, NULL));
1006 bpf_trampoline_put(shim_link->trampoline);
1123 shim_link->trampoline = tr;
1135 /* have to release tr while _not_ holding pool mutex for trampoline */
1202 * is alive. All progs are detached from the trampoline and the
1203 * trampoline image is patched with jmp into epilogue to skip
1204 * fexit progs. The fentry-only trampoline will be freed via
1230 * for the trampoline. The macro is split into
1637 mnode->trampoline = tr;
1658 bpf_trampoline_multi_attach_init(mnode->trampoline);
1661 err = __bpf_trampoline_link_prog(&mnode->node, mnode->trampoline, NULL,
1686 bpf_trampoline_multi_attach_free(mnode->trampoline);
1695 bpf_trampoline_remove_prog(mnode->trampoline, &mnode->node);
1696 bpf_trampoline_multi_attach_rollback(mnode->trampoline);
1706 bpf_trampoline_put(mnode->trampoline);
1721 bpf_trampoline_multi_attach_init(mnode->trampoline);
1722 WARN_ON_ONCE(__bpf_trampoline_unlink_prog(&mnode->node, mnode->trampoline,
1732 bpf_trampoline_multi_attach_free(mnode->trampoline);
1737 bpf_trampoline_put(mnode->trampoline);