Lines Matching refs:kcb

192 static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)  in save_previous_kprobe()  argument
194 kcb->prev_kprobe.kp = kprobe_running(); in save_previous_kprobe()
195 kcb->prev_kprobe.status = kcb->kprobe_status; in save_previous_kprobe()
198 static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb) in restore_previous_kprobe() argument
200 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in restore_previous_kprobe()
201 kcb->kprobe_status = kcb->prev_kprobe.status; in restore_previous_kprobe()
224 singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb) in singlestep() argument
239 struct kprobe_ctlblk *kcb; in kprobe_handler() local
241 kcb = get_kprobe_ctlblk(); in kprobe_handler()
269 switch (kcb->kprobe_status) { in kprobe_handler()
275 save_previous_kprobe(kcb); in kprobe_handler()
277 kcb->kprobe_status = KPROBE_REENTER; in kprobe_handler()
278 singlestep(p, regs, kcb); in kprobe_handler()
279 restore_previous_kprobe(kcb); in kprobe_handler()
293 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_handler()
303 kcb->kprobe_status = KPROBE_HIT_SS; in kprobe_handler()
304 singlestep(p, regs, kcb); in kprobe_handler()
306 kcb->kprobe_status = KPROBE_HIT_SSDONE; in kprobe_handler()
334 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_fault_handler() local
336 switch (kcb->kprobe_status) { in kprobe_fault_handler()
347 if (kcb->kprobe_status == KPROBE_REENTER) { in kprobe_fault_handler()
348 restore_previous_kprobe(kcb); in kprobe_fault_handler()