Searched refs:optinsn (Results 1 - 6 of 6) sorted by relevance
/linux-4.1.27/arch/x86/kernel/kprobes/ |
H A D | opt.c | 65 * 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 D | kprobes.h | 50 /* 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 D | opt-arm.c | 122 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 D | kprobes.h | 53 /* optinsn template addresses */
|
/linux-4.1.27/include/linux/ |
H A D | kprobes.h | 305 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 D | kprobes.c | 383 return arch_prepared_optinsn(&op->optinsn); kprobe_optready() 763 if (!arch_prepared_optinsn(&op->optinsn)) { try_to_optimize_kprobe()
|
Completed in 239 milliseconds