Searched refs:optinsn (Results 1 - 6 of 6) sorted by relevance

/linux-4.1.27/arch/x86/kernel/kprobes/
H A Dopt.c65 * bytes must be recovered from op->optinsn.copied_insn buffer. __recover_optprobed_insn()
70 memcpy(buf + 1, op->optinsn.copied_insn, RELATIVE_ADDR_SIZE); __recover_optprobed_insn()
73 memcpy(buf, op->optinsn.copied_insn + offs, RELATIVE_ADDR_SIZE - offs); __recover_optprobed_insn()
140 /* Optimized kprobe call back function: called from optinsn */
289 for (i = 1; i < op->optinsn.size; i++) { arch_check_optimized_kprobe()
303 (unsigned long)op->kp.addr + op->optinsn.size > addr); arch_within_optimized_kprobe()
310 if (op->optinsn.insn) { __arch_remove_optimized_kprobe()
311 free_optinsn_slot(op->optinsn.insn, dirty); __arch_remove_optimized_kprobe()
312 op->optinsn.insn = NULL; __arch_remove_optimized_kprobe()
313 op->optinsn.size = 0; __arch_remove_optimized_kprobe()
337 op->optinsn.insn = get_optinsn_slot(); arch_prepare_optimized_kprobe()
338 if (!op->optinsn.insn) arch_prepare_optimized_kprobe()
345 rel = (long)op->optinsn.insn - (long)op->kp.addr + RELATIVEJUMP_SIZE; arch_prepare_optimized_kprobe()
351 buf = (u8 *)op->optinsn.insn; arch_prepare_optimized_kprobe()
359 op->optinsn.size = ret; arch_prepare_optimized_kprobe()
371 synthesize_reljump(buf + TMPL_END_IDX + op->optinsn.size, arch_prepare_optimized_kprobe()
372 (u8 *)op->kp.addr + op->optinsn.size); arch_prepare_optimized_kprobe()
376 op->optinsn.size + RELATIVEJUMP_SIZE); arch_prepare_optimized_kprobe()
390 s32 rel = (s32)((long)op->optinsn.insn - list_for_each_entry_safe()
396 memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE, list_for_each_entry_safe()
403 op->optinsn.insn); list_for_each_entry_safe()
416 memcpy(insn_buf + 1, op->optinsn.copied_insn, RELATIVE_ADDR_SIZE); arch_unoptimize_kprobe()
418 op->optinsn.insn); arch_unoptimize_kprobe()
444 regs->ip = (unsigned long)op->optinsn.insn + TMPL_END_IDX; setup_detour_execution()
/linux-4.1.27/arch/x86/include/asm/
H A Dkprobes.h50 /* optinsn template addresses */
91 /* Return true (!0) if optinsn is prepared for optimization. */ arch_prepared_optinsn()
92 static inline int arch_prepared_optinsn(struct arch_optimized_insn *optinsn) arch_prepared_optinsn() argument
94 return optinsn->size; arch_prepared_optinsn()
/linux-4.1.27/arch/arm/probes/kprobes/
H A Dopt-arm.c122 int arch_prepared_optinsn(struct arch_optimized_insn *optinsn) arch_prepared_optinsn() argument
124 return optinsn->insn != NULL; arch_prepared_optinsn()
155 if (op->optinsn.insn) { __arch_remove_optimized_kprobe()
156 free_optinsn_slot(op->optinsn.insn, dirty); __arch_remove_optimized_kprobe()
157 op->optinsn.insn = NULL; __arch_remove_optimized_kprobe()
213 * kprobe opt use a 'b' instruction to branch to optinsn.insn. arch_prepare_optimized_kprobe()
297 /* Set op->optinsn.insn means prepared. */ arch_prepare_optimized_kprobe()
298 op->optinsn.insn = code; arch_prepare_optimized_kprobe()
314 memcpy(op->optinsn.copied_insn, op->kp.addr, list_for_each_entry_safe()
318 (unsigned long)op->optinsn.insn); list_for_each_entry_safe()
326 op->optinsn.copied_insn[0]) & 0xf0000000) | list_for_each_entry_safe()
/linux-4.1.27/arch/arm/include/asm/
H A Dkprobes.h53 /* optinsn template addresses */
/linux-4.1.27/include/linux/
H A Dkprobes.h305 struct arch_optimized_insn optinsn; member in struct:optimized_kprobe
309 extern int arch_prepared_optinsn(struct arch_optimized_insn *optinsn);
323 DEFINE_INSN_CACHE_OPS(optinsn); variable
/linux-4.1.27/kernel/
H A Dkprobes.c383 return arch_prepared_optinsn(&op->optinsn); kprobe_optready()
763 if (!arch_prepared_optinsn(&op->optinsn)) { try_to_optimize_kprobe()

Completed in 637 milliseconds