Lines Matching refs:kcb

778 save_previous_kprobe(struct kprobe_ctlblk *kcb)  in save_previous_kprobe()  argument
780 kcb->prev_kprobe.kp = kprobe_running(); in save_previous_kprobe()
781 kcb->prev_kprobe.status = kcb->kprobe_status; in save_previous_kprobe()
782 kcb->prev_kprobe.old_flags = kcb->kprobe_old_flags; in save_previous_kprobe()
783 kcb->prev_kprobe.saved_flags = kcb->kprobe_saved_flags; in save_previous_kprobe()
787 restore_previous_kprobe(struct kprobe_ctlblk *kcb) in restore_previous_kprobe() argument
789 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in restore_previous_kprobe()
790 kcb->kprobe_status = kcb->prev_kprobe.status; in restore_previous_kprobe()
791 kcb->kprobe_old_flags = kcb->prev_kprobe.old_flags; in restore_previous_kprobe()
792 kcb->kprobe_saved_flags = kcb->prev_kprobe.saved_flags; in restore_previous_kprobe()
797 struct kprobe_ctlblk *kcb) in set_current_kprobe() argument
800 kcb->kprobe_saved_flags = kcb->kprobe_old_flags in set_current_kprobe()
817 struct kprobe_ctlblk *kcb) in kprobe_post_process() argument
819 if ((kcb->kprobe_status != KPROBE_REENTER) && cur->post_handler) { in kprobe_post_process()
820 kcb->kprobe_status = KPROBE_HIT_SSDONE; in kprobe_post_process()
825 if (kcb->kprobe_status == KPROBE_REENTER) in kprobe_post_process()
826 restore_previous_kprobe(kcb); in kprobe_post_process()
833 struct kprobe_ctlblk *kcb, int reenter) in setup_singlestep() argument
853 save_previous_kprobe(kcb); in setup_singlestep()
854 set_current_kprobe(p, regs, kcb); in setup_singlestep()
855 kcb->kprobe_status = KPROBE_REENTER; in setup_singlestep()
857 kcb->kprobe_status = KPROBE_HIT_SS; in setup_singlestep()
861 kprobe_post_process(p, regs, kcb); in setup_singlestep()
890 struct kprobe_ctlblk *kcb) in resume_singlestep() argument
896 regs->flags |= kcb->kprobe_saved_flags; in resume_singlestep()
908 struct kprobe_ctlblk *kcb) in reenter_kprobe() argument
910 switch (kcb->kprobe_status) { in reenter_kprobe()
915 setup_singlestep(p, regs, kcb, 1); in reenter_kprobe()
937 static nokprobe_inline int kprobe_is_ss(struct kprobe_ctlblk *kcb) in kprobe_is_ss() argument
939 return (kcb->kprobe_status == KPROBE_HIT_SS || in kprobe_is_ss()
940 kcb->kprobe_status == KPROBE_REENTER); in kprobe_is_ss()
951 struct kprobe_ctlblk *kcb; in kprobe_int3_handler() local
963 kcb = get_kprobe_ctlblk(); in kprobe_int3_handler()
968 if (reenter_kprobe(p, regs, kcb)) in kprobe_int3_handler()
971 set_current_kprobe(p, regs, kcb); in kprobe_int3_handler()
972 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_int3_handler()
982 setup_singlestep(p, regs, kcb, 0); in kprobe_int3_handler()
987 } else if (kprobe_is_ss(kcb)) { in kprobe_int3_handler()
992 resume_singlestep(p, regs, kcb); in kprobe_int3_handler()
993 kprobe_post_process(p, regs, kcb); in kprobe_int3_handler()
1113 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_fault_handler() local
1117 WARN_ON(kcb->kprobe_status != KPROBE_HIT_SS && in kprobe_fault_handler()
1118 kcb->kprobe_status != KPROBE_REENTER); in kprobe_fault_handler()
1132 regs->flags |= kcb->kprobe_old_flags; in kprobe_fault_handler()
1134 if (kcb->kprobe_status == KPROBE_REENTER) in kprobe_fault_handler()
1135 restore_previous_kprobe(kcb); in kprobe_fault_handler()