Lines Matching refs:kcb

797 save_previous_kprobe(struct kprobe_ctlblk *kcb)  in save_previous_kprobe()  argument
799 kcb->prev_kprobe.kp = kprobe_running(); in save_previous_kprobe()
800 kcb->prev_kprobe.status = kcb->kprobe_status; in save_previous_kprobe()
801 kcb->prev_kprobe.old_flags = kcb->kprobe_old_flags; in save_previous_kprobe()
802 kcb->prev_kprobe.saved_flags = kcb->kprobe_saved_flags; in save_previous_kprobe()
806 restore_previous_kprobe(struct kprobe_ctlblk *kcb) in restore_previous_kprobe() argument
808 __this_cpu_write(current_kprobe, kcb->prev_kprobe.kp); in restore_previous_kprobe()
809 kcb->kprobe_status = kcb->prev_kprobe.status; in restore_previous_kprobe()
810 kcb->kprobe_old_flags = kcb->prev_kprobe.old_flags; in restore_previous_kprobe()
811 kcb->kprobe_saved_flags = kcb->prev_kprobe.saved_flags; in restore_previous_kprobe()
816 struct kprobe_ctlblk *kcb) in set_current_kprobe() argument
819 kcb->kprobe_saved_flags = kcb->kprobe_old_flags in set_current_kprobe()
824 struct kprobe_ctlblk *kcb) in kprobe_post_process() argument
827 if (kcb->kprobe_status == KPROBE_REENTER) { in kprobe_post_process()
829 restore_previous_kprobe(kcb); in kprobe_post_process()
835 kcb->kprobe_status = KPROBE_HIT_SSDONE; in kprobe_post_process()
844 struct kprobe_ctlblk *kcb, int reenter) in setup_singlestep() argument
864 save_previous_kprobe(kcb); in setup_singlestep()
865 set_current_kprobe(p, regs, kcb); in setup_singlestep()
866 kcb->kprobe_status = KPROBE_REENTER; in setup_singlestep()
868 kcb->kprobe_status = KPROBE_HIT_SS; in setup_singlestep()
872 kprobe_post_process(p, regs, kcb); in setup_singlestep()
901 struct kprobe_ctlblk *kcb) in resume_singlestep() argument
907 regs->flags |= kcb->kprobe_saved_flags; in resume_singlestep()
919 struct kprobe_ctlblk *kcb) in reenter_kprobe() argument
921 switch (kcb->kprobe_status) { in reenter_kprobe()
926 setup_singlestep(p, regs, kcb, 1); in reenter_kprobe()
948 static nokprobe_inline int kprobe_is_ss(struct kprobe_ctlblk *kcb) in kprobe_is_ss() argument
950 return (kcb->kprobe_status == KPROBE_HIT_SS || in kprobe_is_ss()
951 kcb->kprobe_status == KPROBE_REENTER); in kprobe_is_ss()
962 struct kprobe_ctlblk *kcb; in kprobe_int3_handler() local
974 kcb = get_kprobe_ctlblk(); in kprobe_int3_handler()
979 if (reenter_kprobe(p, regs, kcb)) in kprobe_int3_handler()
982 set_current_kprobe(p, regs, kcb); in kprobe_int3_handler()
983 kcb->kprobe_status = KPROBE_HIT_ACTIVE; in kprobe_int3_handler()
993 setup_singlestep(p, regs, kcb, 0); in kprobe_int3_handler()
998 } else if (kprobe_is_ss(kcb)) { in kprobe_int3_handler()
1003 resume_singlestep(p, regs, kcb); in kprobe_int3_handler()
1004 kprobe_post_process(p, regs, kcb); in kprobe_int3_handler()
1016 struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); in kprobe_fault_handler() local
1020 WARN_ON(kcb->kprobe_status != KPROBE_HIT_SS && in kprobe_fault_handler()
1021 kcb->kprobe_status != KPROBE_REENTER); in kprobe_fault_handler()
1035 regs->flags |= kcb->kprobe_old_flags; in kprobe_fault_handler()
1037 if (kcb->kprobe_status == KPROBE_REENTER) in kprobe_fault_handler()
1038 restore_previous_kprobe(kcb); in kprobe_fault_handler()