Lines Matching refs:target
84 u32 insn_ldr; /* load target */
85 u32 insn_br; /* branch to target */
86 u64 target; /* target value */
89 #define PLT_TARGET_SIZE sizeof_field(struct bpf_plt, target)
90 #define PLT_TARGET_OFFSET offsetof(struct bpf_plt, target)
179 static inline void emit_call(u64 target, struct jit_ctx *ctx)
183 emit_addr_mov_i64(tmp, target, ctx);
629 * ldr tmp, target
631 * target:
634 * when a long jump trampoline is attached, target is filled with the
635 * trampoline address, and when the trampoline is removed, target is
643 /* make sure target is 64-bit aligned */
653 plt->target = (u64)&dummy_tramp;
1598 /* also allocate space for plt target */
2075 static bool is_long_jump(void *ip, void *target)
2079 /* NULL target means this is a NOP */
2080 if (!target)
2083 offset = (long)target - (long)ip;
2090 void *target;
2098 target = plt;
2100 target = addr;
2103 (unsigned long)target,
2128 * ldr x10, target
2130 * target:
2131 * .quad dummy_tramp // plt target
2145 * ldr x10, target
2147 * target:
2148 * .quad dummy_tramp // plt target
2150 * When a long-jump bpf trampoline is attached, the plt target is filled with
2161 * ldr x10, target
2163 * target:
2164 * .quad <long-jump bpf trampoline address> // plt target
2228 /* if the old target is a long jump and the new target is not,
2229 * restore the plt target to dummy_tramp, so there is always a
2230 * legal and harmless address stored in plt target, and we'll
2239 if (set_memory_rw(PAGE_MASK & ((uintptr_t)&plt->target), 1))
2241 WRITE_ONCE(plt->target, plt_target);
2242 set_memory_ro(PAGE_MASK & ((uintptr_t)&plt->target), 1);
2243 /* since plt target points to either the new trampoline
2245 * target value before fetching the bl instruction to plt,
2251 /* if the old target and the new target are both long jumps, no