Lines Matching refs:poke

497 static void emit_bpf_tail_call_direct(struct bpf_jit_poke_descriptor *poke,  in emit_bpf_tail_call_direct()  argument
518 poke->tailcall_bypass = ip + (prog - start); in emit_bpf_tail_call_direct()
519 poke->adj_off = X86_TAIL_CALL_OFFSET; in emit_bpf_tail_call_direct()
520 poke->tailcall_target = ip + ctx->tail_call_direct_label - X86_PATCH_SIZE; in emit_bpf_tail_call_direct()
521 poke->bypass_addr = (u8 *)poke->tailcall_target + X86_PATCH_SIZE; in emit_bpf_tail_call_direct()
523 emit_jump(&prog, (u8 *)poke->tailcall_target + X86_PATCH_SIZE, in emit_bpf_tail_call_direct()
524 poke->tailcall_bypass); in emit_bpf_tail_call_direct()
542 struct bpf_jit_poke_descriptor *poke; in bpf_tail_call_direct_fixup() local
548 poke = &prog->aux->poke_tab[i]; in bpf_tail_call_direct_fixup()
549 if (poke->aux && poke->aux != prog->aux) in bpf_tail_call_direct_fixup()
552 WARN_ON_ONCE(READ_ONCE(poke->tailcall_target_stable)); in bpf_tail_call_direct_fixup()
554 if (poke->reason != BPF_POKE_REASON_TAIL_CALL) in bpf_tail_call_direct_fixup()
557 array = container_of(poke->tail_call.map, struct bpf_array, map); in bpf_tail_call_direct_fixup()
559 target = array->ptrs[poke->tail_call.key]; in bpf_tail_call_direct_fixup()
570 ret = __bpf_arch_text_poke(poke->tailcall_target, in bpf_tail_call_direct_fixup()
573 poke->adj_off, false); in bpf_tail_call_direct_fixup()
575 ret = __bpf_arch_text_poke(poke->tailcall_bypass, in bpf_tail_call_direct_fixup()
577 (u8 *)poke->tailcall_target + in bpf_tail_call_direct_fixup()
581 WRITE_ONCE(poke->tailcall_target_stable, true); in bpf_tail_call_direct_fixup()