Lines Matching refs:p

85 int __kprobes arch_prepare_kprobe(struct kprobe *p)  in arch_prepare_kprobe()  argument
87 unsigned long addr = (unsigned long)p->addr; in arch_prepare_kprobe()
92 if (insn_has_control(*p->addr)) { in arch_prepare_kprobe()
98 p->ainsn.insn = get_insn_slot(); in arch_prepare_kprobe()
99 if (!p->ainsn.insn) in arch_prepare_kprobe()
107 memcpy(&p->ainsn.insn[0], p->addr, sizeof(kprobe_opcode_t)); in arch_prepare_kprobe()
108 p->ainsn.insn[1] = breakpoint2_insn; in arch_prepare_kprobe()
109 p->opcode = *p->addr; in arch_prepare_kprobe()
114 void __kprobes arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() argument
119 addr_wr = (unsigned long)p->addr - MEM_SV_START + PAGE_OFFSET; in arch_arm_kprobe()
126 flush_insn_slot(p); in arch_arm_kprobe()
144 void __kprobes arch_remove_kprobe(struct kprobe *p) in arch_remove_kprobe() argument
146 if (p->ainsn.insn) { in arch_remove_kprobe()
147 free_insn_slot(p->ainsn.insn, 0); in arch_remove_kprobe()
148 p->ainsn.insn = NULL; in arch_remove_kprobe()
166 static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs, in set_current_kprobe() argument
169 __this_cpu_write(current_kprobe, p); in set_current_kprobe()
173 static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) in prepare_singlestep() argument
176 if (p->opcode == breakpoint_insn || in prepare_singlestep()
177 p->opcode == breakpoint2_insn) in prepare_singlestep()
178 regs->pc = (unsigned long)p->addr; in prepare_singlestep()
180 regs->pc = (unsigned long)&p->ainsn.insn[0]; in prepare_singlestep()
185 struct kprobe *p; in kprobe_handler() local
201 p = get_kprobe(addr); in kprobe_handler()
202 if (p) { in kprobe_handler()
204 p->ainsn.insn[0] == breakpoint_insn) { in kprobe_handler()
215 set_current_kprobe(p, regs, kcb); in kprobe_handler()
216 kprobes_inc_nmissed_count(p); in kprobe_handler()
217 prepare_singlestep(p, regs); in kprobe_handler()
230 p = __this_cpu_read(current_kprobe); in kprobe_handler()
231 if (p->break_handler && p->break_handler(p, regs)) in kprobe_handler()
237 p = get_kprobe(addr); in kprobe_handler()
238 if (!p) { in kprobe_handler()
253 set_current_kprobe(p, regs, kcb); in kprobe_handler()
256 if (p->pre_handler && p->pre_handler(p, regs)) { in kprobe_handler()
262 prepare_singlestep(p, regs); in kprobe_handler()
281 static void __kprobes resume_execution(struct kprobe *p, in resume_execution() argument
372 int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) in setjmp_pre_handler() argument
374 struct jprobe *jp = container_of(p, struct jprobe, kp); in setjmp_pre_handler()
399 int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) in longjmp_break_handler() argument
445 static int __kprobes trampoline_probe_handler(struct kprobe *p, in trampoline_probe_handler() argument
510 int __kprobes arch_trampoline_kprobe(struct kprobe *p) in arch_trampoline_kprobe() argument
512 if (p->addr == (kprobe_opcode_t *)kretprobe_trampoline) in arch_trampoline_kprobe()