Lines Matching refs:p
49 int __kprobes arch_prepare_kprobe(struct kprobe *p) in arch_prepare_kprobe() argument
51 if ((unsigned long) p->addr & 0x3UL) in arch_prepare_kprobe()
54 p->ainsn.insn[0] = *p->addr; in arch_prepare_kprobe()
55 flushi(&p->ainsn.insn[0]); in arch_prepare_kprobe()
57 p->ainsn.insn[1] = BREAKPOINT_INSTRUCTION_2; in arch_prepare_kprobe()
58 flushi(&p->ainsn.insn[1]); in arch_prepare_kprobe()
60 p->opcode = *p->addr; in arch_prepare_kprobe()
64 void __kprobes arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() argument
66 *p->addr = BREAKPOINT_INSTRUCTION; in arch_arm_kprobe()
67 flushi(p->addr); in arch_arm_kprobe()
70 void __kprobes arch_disarm_kprobe(struct kprobe *p) in arch_disarm_kprobe() argument
72 *p->addr = p->opcode; in arch_disarm_kprobe()
73 flushi(p->addr); in arch_disarm_kprobe()
92 static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs, in set_current_kprobe() argument
95 __this_cpu_write(current_kprobe, p); in set_current_kprobe()
100 static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs, in prepare_singlestep() argument
106 if (p->opcode == BREAKPOINT_INSTRUCTION) { in prepare_singlestep()
107 regs->tpc = (unsigned long) p->addr; in prepare_singlestep()
110 regs->tpc = (unsigned long) &p->ainsn.insn[0]; in prepare_singlestep()
111 regs->tnpc = (unsigned long) &p->ainsn.insn[1]; in prepare_singlestep()
117 struct kprobe *p; in kprobe_handler() local
130 p = get_kprobe(addr); in kprobe_handler()
131 if (p) { in kprobe_handler()
144 set_current_kprobe(p, regs, kcb); in kprobe_handler()
145 kprobes_inc_nmissed_count(p); in kprobe_handler()
147 prepare_singlestep(p, regs, kcb); in kprobe_handler()
158 p = __this_cpu_read(current_kprobe); in kprobe_handler()
159 if (p->break_handler && p->break_handler(p, regs)) in kprobe_handler()
165 p = get_kprobe(addr); in kprobe_handler()
166 if (!p) { in kprobe_handler()
181 set_current_kprobe(p, regs, kcb); in kprobe_handler()
183 if (p->pre_handler && p->pre_handler(p, regs)) in kprobe_handler()
187 prepare_singlestep(p, regs, kcb); in kprobe_handler()
204 static unsigned long __kprobes relbranch_fixup(u32 insn, struct kprobe *p, in relbranch_fixup() argument
207 unsigned long real_pc = (unsigned long) p->addr; in relbranch_fixup()
221 ainsn_addr = (unsigned long) &p->ainsn.insn[0]; in relbranch_fixup()
280 static void __kprobes resume_execution(struct kprobe *p, in resume_execution() argument
283 u32 insn = p->ainsn.insn[0]; in resume_execution()
285 regs->tnpc = relbranch_fixup(insn, p, regs); in resume_execution()
290 retpc_fixup(regs, insn, (unsigned long) p->addr); in resume_execution()
444 int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) in setjmp_pre_handler() argument
446 struct jprobe *jp = container_of(p, struct jprobe, kp); in setjmp_pre_handler()
477 int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) in longjmp_break_handler() argument
515 static int __kprobes trampoline_probe_handler(struct kprobe *p, in trampoline_probe_handler() argument
597 int __kprobes arch_trampoline_kprobe(struct kprobe *p) in arch_trampoline_kprobe() argument
599 if (p->addr == (kprobe_opcode_t *)&kretprobe_trampoline) in arch_trampoline_kprobe()