kprobe_status = KPROBE_HIT_SS; 
kcb->kprobe_status = KPROBE_HIT_SS; 
static int __kprobes pre_kprobes_handler(struct die_args *args){	struct kprobe *p;	int ret = 0;	struct pt_regs *regs = args->regs;	kprobe_opcode_t *addr = (kprobe_opcode_t *)instruction_pointer(regs);	/* Handle recursion cases */	if (kprobe_running()) {		p = get_kprobe(addr);		if (p) {			if ( (kprobe_status == KPROBE_HIT_SS) &&	 		     (p->ainsn.inst_flag == INST_FLAG_BREAK_INST)) {  				ia64_psr(regs)->ss = 0;				unlock_kprobes();				goto no_kprobe;			}			/* We have reentered the pre_kprobe_handler(), since			 * another probe was hit while within the handler.			 * We here save the original kprobes variables and			 * just single step on the instruction of the new probe			 * without calling any user handlers.			 */			save_previous_kprobe();			set_current_kprobe(p);			p->nmissed++;			prepare_ss(p, regs);			kprobe_status = KPROBE_REENTER;			return 1;		} else if (args->err == __IA64_BREAK_JPROBE) {			/*			 * jprobe instrumented function just completed			 */			p = current_kprobe;			if (p->break_handler && p->break_handler(p, regs)) {				goto ss_probe;			}		} else {			/* Not our break */			goto no_kprobe;		}	}	lock_kprobes();	p = get_kprobe(addr);	if (!p) {		unlock_kprobes();		if (!is_ia64_break_inst(regs)) {			/*			 * The breakpoint instruction was removed right			 * after we hit it.  Another cpu has removed			 * either a probepoint or a debugger breakpoint			 * at this address.  In either case, no further			 * handling of this interrupt is appropriate.			 */			ret = 1;		}		/* Not one of our break, let kernel handle it */		goto no_kprobe;	}	/*	 * This preempt_disable() matches the preempt_enable_no_resched()	 * in post_kprobes_handler()	 */	preempt_disable();	kprobe_status = KPROBE_HIT_ACTIVE;	set_current_kprobe(p);	if (p->pre_handler && p->pre_handler(p, regs))		/*		 * Our pre-handler is specifically requesting that we just		 * do a return.  This is used for both the jprobe pre-handler		 * and the kretprobe trampoline		 */		return 1;ss_probe:	prepare_ss(p, regs);	kprobe_status = KPROBE_HIT_SS;	return 1;no_kprobe:	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/8a5c4dc5e5d72b7802f5647082ccf3861a94f013/kprobes.c/buggy/arch/ia64/kernel/kprobes.c