Lines Matching refs:kcb
210 static nokprobe_inline void save_previous_kprobe(struct kprobe_ctlblk *kcb)
212 kcb->prev_kprobe.kp = kprobe_running();
213 kcb->prev_kprobe.status = kcb->kprobe_status;
214 kcb->prev_kprobe.saved_msr = kcb->kprobe_saved_msr;
217 static nokprobe_inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb)
219 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp);
220 kcb->kprobe_status = kcb->prev_kprobe.status;
221 kcb->kprobe_saved_msr = kcb->prev_kprobe.saved_msr;
225 struct kprobe_ctlblk *kcb)
228 kcb->kprobe_saved_msr = regs->msr;
287 struct kprobe_ctlblk *kcb;
301 kcb = get_kprobe_ctlblk();
334 if (kcb->kprobe_status == KPROBE_HIT_SS && is_trap(insn)) {
338 kcb->kprobe_saved_msr);
348 save_previous_kprobe(kcb);
349 set_current_kprobe(p, regs, kcb);
351 kcb->kprobe_status = KPROBE_REENTER;
356 restore_previous_kprobe(kcb);
365 kcb->kprobe_status = KPROBE_HIT_ACTIVE;
366 set_current_kprobe(p, regs, kcb);
381 kcb->kprobe_status = KPROBE_HIT_SSDONE;
388 kcb->kprobe_status = KPROBE_HIT_SS;
452 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
462 if ((kcb->kprobe_status != KPROBE_REENTER) && cur->post_handler) {
463 kcb->kprobe_status = KPROBE_HIT_SSDONE;
469 regs_set_return_msr(regs, regs->msr | kcb->kprobe_saved_msr);
472 if (kcb->kprobe_status == KPROBE_REENTER) {
473 restore_previous_kprobe(kcb);
495 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
498 switch(kcb->kprobe_status) {
512 kcb->kprobe_saved_msr);
513 if (kcb->kprobe_status == KPROBE_REENTER)
514 restore_previous_kprobe(kcb);