/kernel/linux/linux-6.6/arch/x86/net/ |
H A D | bpf_jit_comp.c | 544 static void emit_bpf_tail_call_direct(struct bpf_jit_poke_descriptor *poke, in emit_bpf_tail_call_direct() argument 565 poke->tailcall_bypass = ip + (prog - start); in emit_bpf_tail_call_direct() 566 poke->adj_off = X86_TAIL_CALL_OFFSET; in emit_bpf_tail_call_direct() 567 poke->tailcall_target = ip + ctx->tail_call_direct_label - X86_PATCH_SIZE; in emit_bpf_tail_call_direct() 568 poke->bypass_addr = (u8 *)poke->tailcall_target + X86_PATCH_SIZE; in emit_bpf_tail_call_direct() 570 emit_jump(&prog, (u8 *)poke->tailcall_target + X86_PATCH_SIZE, in emit_bpf_tail_call_direct() 571 poke->tailcall_bypass); in emit_bpf_tail_call_direct() 589 struct bpf_jit_poke_descriptor *poke; in bpf_tail_call_direct_fixup() local 595 poke in bpf_tail_call_direct_fixup() 2933 bpf_arch_poke_desc_update(struct bpf_jit_poke_descriptor *poke, struct bpf_prog *new, struct bpf_prog *old) bpf_arch_poke_desc_update() argument [all...] |
/kernel/linux/linux-5.10/arch/arm/common/ |
H A D | mcpm_entry.c | 155 unsigned long *poke = &mcpm_entry_early_pokes[cluster][cpu][0]; in mcpm_set_early_poke() local 156 poke[0] = poke_phys_addr; in mcpm_set_early_poke() 157 poke[1] = poke_val; in mcpm_set_early_poke() 158 __sync_cache_range_w(poke, 2 * sizeof(*poke)); in mcpm_set_early_poke()
|
H A D | mcpm_head.S | 79 @ Perform an early poke, if any
|
/kernel/linux/linux-6.6/arch/arm/common/ |
H A D | mcpm_entry.c | 155 unsigned long *poke = &mcpm_entry_early_pokes[cluster][cpu][0]; in mcpm_set_early_poke() local 156 poke[0] = poke_phys_addr; in mcpm_set_early_poke() 157 poke[1] = poke_val; in mcpm_set_early_poke() 158 __sync_cache_range_w(poke, 2 * sizeof(*poke)); in mcpm_set_early_poke()
|
H A D | mcpm_head.S | 81 @ Perform an early poke, if any
|
/kernel/linux/linux-5.10/kernel/bpf/ |
H A D | arraymap.c | 926 struct bpf_jit_poke_descriptor *poke; in prog_array_map_poke_run() local 930 poke = &elem->aux->poke_tab[i]; in prog_array_map_poke_run() 939 * entry. We skip these as poke->tailcall_target_stable in prog_array_map_poke_run() 942 * poke->tailcall_target_stable are successively in prog_array_map_poke_run() 945 * non-activated poke entries. in prog_array_map_poke_run() 962 if (!READ_ONCE(poke->tailcall_target_stable)) in prog_array_map_poke_run() 964 if (poke->reason != BPF_POKE_REASON_TAIL_CALL) in prog_array_map_poke_run() 966 if (poke->tail_call.map != map || in prog_array_map_poke_run() 967 poke->tail_call.key != key) in prog_array_map_poke_run() 970 old_bypass_addr = old ? NULL : poke in prog_array_map_poke_run() [all...] |
H A D | core.c | 781 struct bpf_jit_poke_descriptor *poke) in bpf_jit_add_poke_descriptor() 790 if (poke->tailcall_target || poke->tailcall_target_stable || in bpf_jit_add_poke_descriptor() 791 poke->tailcall_bypass || poke->adj_off || poke->bypass_addr) in bpf_jit_add_poke_descriptor() 794 switch (poke->reason) { in bpf_jit_add_poke_descriptor() 796 if (!poke->tail_call.map) in bpf_jit_add_poke_descriptor() 803 tab = krealloc(tab, size * sizeof(*poke), GFP_KERNEL); in bpf_jit_add_poke_descriptor() 807 memcpy(&tab[slot], poke, sizeo in bpf_jit_add_poke_descriptor() 780 bpf_jit_add_poke_descriptor(struct bpf_prog *prog, struct bpf_jit_poke_descriptor *poke) bpf_jit_add_poke_descriptor() argument [all...] |
H A D | verifier.c | 11456 struct bpf_jit_poke_descriptor *poke; in jit_subprogs() local 11458 poke = &prog->aux->poke_tab[j]; in jit_subprogs() 11459 if (poke->insn_idx < subprog_end && in jit_subprogs() 11460 poke->insn_idx >= subprog_start) in jit_subprogs() 11461 poke->aux = func[i]->aux; in jit_subprogs() 11560 /* We failed JIT'ing, so at this point we need to unregister poke in jit_subprogs() 11568 /* At this point we're guaranteed that poke descriptors are not in jit_subprogs() 11809 verbose(env, "adding tail call poke descriptor failed\n"); in fixup_bpf_calls() 11971 /* Since poke tab is now finalized, publish aux to tracker. */ in fixup_bpf_calls()
|
/kernel/linux/linux-5.10/arch/x86/net/ |
H A D | bpf_jit_comp.c | 506 static void emit_bpf_tail_call_direct(struct bpf_jit_poke_descriptor *poke, in emit_bpf_tail_call_direct() argument 527 poke->tailcall_bypass = ip + (prog - start); in emit_bpf_tail_call_direct() 528 poke->adj_off = X86_TAIL_CALL_OFFSET; in emit_bpf_tail_call_direct() 529 poke->tailcall_target = ip + ctx->tail_call_direct_label - X86_PATCH_SIZE; in emit_bpf_tail_call_direct() 530 poke->bypass_addr = (u8 *)poke->tailcall_target + X86_PATCH_SIZE; in emit_bpf_tail_call_direct() 532 emit_jump(&prog, (u8 *)poke->tailcall_target + X86_PATCH_SIZE, in emit_bpf_tail_call_direct() 533 poke->tailcall_bypass); in emit_bpf_tail_call_direct() 551 struct bpf_jit_poke_descriptor *poke; in bpf_tail_call_direct_fixup() local 557 poke in bpf_tail_call_direct_fixup() [all...] |
/kernel/linux/linux-6.6/kernel/bpf/ |
H A D | arraymap.c | 1021 void __weak bpf_arch_poke_desc_update(struct bpf_jit_poke_descriptor *poke, in bpf_arch_poke_desc_update() argument 1038 struct bpf_jit_poke_descriptor *poke; in prog_array_map_poke_run() local 1042 poke = &elem->aux->poke_tab[i]; in prog_array_map_poke_run() 1051 * entry. We skip these as poke->tailcall_target_stable in prog_array_map_poke_run() 1054 * poke->tailcall_target_stable are successively in prog_array_map_poke_run() 1057 * non-activated poke entries. in prog_array_map_poke_run() 1063 if (!READ_ONCE(poke->tailcall_target_stable)) in prog_array_map_poke_run() 1065 if (poke->reason != BPF_POKE_REASON_TAIL_CALL) in prog_array_map_poke_run() 1067 if (poke->tail_call.map != map || in prog_array_map_poke_run() 1068 poke in prog_array_map_poke_run() [all...] |
H A D | core.c | 800 struct bpf_jit_poke_descriptor *poke) in bpf_jit_add_poke_descriptor() 809 if (poke->tailcall_target || poke->tailcall_target_stable || in bpf_jit_add_poke_descriptor() 810 poke->tailcall_bypass || poke->adj_off || poke->bypass_addr) in bpf_jit_add_poke_descriptor() 813 switch (poke->reason) { in bpf_jit_add_poke_descriptor() 815 if (!poke->tail_call.map) in bpf_jit_add_poke_descriptor() 822 tab = krealloc(tab, size * sizeof(*poke), GFP_KERNEL); in bpf_jit_add_poke_descriptor() 826 memcpy(&tab[slot], poke, sizeo in bpf_jit_add_poke_descriptor() 799 bpf_jit_add_poke_descriptor(struct bpf_prog *prog, struct bpf_jit_poke_descriptor *poke) bpf_jit_add_poke_descriptor() argument [all...] |
H A D | verifier.c | 18516 struct bpf_jit_poke_descriptor *poke; in jit_subprogs() local 18518 poke = &prog->aux->poke_tab[j]; in jit_subprogs() 18519 if (poke->insn_idx < subprog_end && in jit_subprogs() 18520 poke->insn_idx >= subprog_start) in jit_subprogs() 18521 poke->aux = func[i]->aux; in jit_subprogs() 18633 /* We failed JIT'ing, so at this point we need to unregister poke in jit_subprogs() 18641 /* At this point we're guaranteed that poke descriptors are not in jit_subprogs() 19045 verbose(env, "adding tail call poke descriptor failed\n"); in do_misc_fixups() 19359 /* Since poke tab is now finalized, publish aux to tracker. */ in do_misc_fixups()
|
/kernel/linux/linux-6.6/net/rxrpc/ |
H A D | sendmsg.c | 243 bool last = test_bit(RXRPC_TXBUF_LAST, &txb->flags), poke; in rxrpc_queue_packet() local 261 poke = list_empty(&call->tx_sendmsg); in rxrpc_queue_packet() 268 if (poke) in rxrpc_queue_packet()
|
/kernel/linux/linux-5.10/arch/sparc/kernel/ |
H A D | smp_64.c | 78 static DEFINE_PER_CPU(bool, poke); 1417 if (!__this_cpu_read(poke)) in scheduler_poke() 1420 __this_cpu_write(poke, false); in scheduler_poke() 1428 per_cpu(poke, cpu) = true; in send_cpu_poke() 1431 per_cpu(poke, cpu) = false; in send_cpu_poke() 1447 /* Use cpu poke to resume idle cpu if supported. */ in smp_send_reschedule() 1457 * - cpu poke not supported in smp_send_reschedule()
|
/kernel/linux/linux-6.6/arch/sparc/kernel/ |
H A D | smp_64.c | 78 static DEFINE_PER_CPU(bool, poke); 1427 if (!__this_cpu_read(poke)) in scheduler_poke() 1430 __this_cpu_write(poke, false); in scheduler_poke() 1438 per_cpu(poke, cpu) = true; in send_cpu_poke() 1441 per_cpu(poke, cpu) = false; in send_cpu_poke() 1457 /* Use cpu poke to resume idle cpu if supported. */ in arch_smp_send_reschedule() 1467 * - cpu poke not supported in arch_smp_send_reschedule()
|
/kernel/linux/linux-5.10/drivers/infiniband/hw/qib/ |
H A D | qib_qsfp.c | 300 u8 poke = 0; in qib_refresh_qsfp_cache() local 302 ret = qib_qsfp_write(ppd, 127, &poke, 1); in qib_refresh_qsfp_cache()
|
/kernel/linux/linux-6.6/drivers/infiniband/hw/qib/ |
H A D | qib_qsfp.c | 300 u8 poke = 0; in qib_refresh_qsfp_cache() local 302 ret = qib_qsfp_write(ppd, 127, &poke, 1); in qib_refresh_qsfp_cache()
|
/kernel/linux/linux-5.10/include/linux/ |
H A D | filter.h | 1017 struct bpf_jit_poke_descriptor *poke); 1128 struct bpf_jit_poke_descriptor *poke) in bpf_jit_add_poke_descriptor() 1127 bpf_jit_add_poke_descriptor(struct bpf_prog *prog, struct bpf_jit_poke_descriptor *poke) bpf_jit_add_poke_descriptor() argument
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | filter.h | 1056 struct bpf_jit_poke_descriptor *poke); 1167 struct bpf_jit_poke_descriptor *poke) in bpf_jit_add_poke_descriptor() 1166 bpf_jit_add_poke_descriptor(struct bpf_prog *prog, struct bpf_jit_poke_descriptor *poke) bpf_jit_add_poke_descriptor() argument
|
H A D | bpf.h | 123 /* Prog poke tracking helpers. */ 3155 void bpf_arch_poke_desc_update(struct bpf_jit_poke_descriptor *poke,
|