unsigned long bundle_addr = ((unsigned long) (&p->ainsn.insn.bundle)) & ~0xFULL; 
unsigned long bundle_addr = ((unsigned long) (&p->opcode.bundle)) & ~0xFULL; 
static void resume_execution(struct kprobe *p, struct pt_regs *regs){  	unsigned long bundle_addr = ((unsigned long) (&p->ainsn.insn.bundle)) & ~0xFULL;  	unsigned long resume_addr = (unsigned long)p->addr & ~0xFULL; 	unsigned long template; 	int slot = ((unsigned long)p->addr & 0xf);	template = p->opcode.bundle.quad0.template; 	if (slot == 1 && bundle_encoding[template][1] == L) 		slot = 2;	if (p->ainsn.inst_flag) {		if (p->ainsn.inst_flag & INST_FLAG_FIX_RELATIVE_IP_ADDR) {			/* Fix relative IP address */ 			regs->cr_iip = (regs->cr_iip - bundle_addr) + resume_addr;		}		if (p->ainsn.inst_flag & INST_FLAG_FIX_BRANCH_REG) {		/*		 * Fix target branch register, software convention is		 * to use either b0 or b6 or b7, so just checking		 * only those registers		 */			switch (p->ainsn.target_br_reg) {			case 0:				if ((regs->b0 == bundle_addr) ||					(regs->b0 == bundle_addr + 0x10)) {					regs->b0 = (regs->b0 - bundle_addr) +						resume_addr;				}				break;			case 6:				if ((regs->b6 == bundle_addr) ||					(regs->b6 == bundle_addr + 0x10)) {					regs->b6 = (regs->b6 - bundle_addr) +						resume_addr;				}				break;			case 7:				if ((regs->b7 == bundle_addr) ||					(regs->b7 == bundle_addr + 0x10)) {					regs->b7 = (regs->b7 - bundle_addr) +						resume_addr;				}				break;			} /* end switch */		}		goto turn_ss_off;	}	if (slot == 2) { 		if (regs->cr_iip == bundle_addr + 0x10) { 			regs->cr_iip = resume_addr + 0x10; 		} 	} else { 		if (regs->cr_iip == bundle_addr) { 			regs->cr_iip = resume_addr; 		} 	}turn_ss_off:  	/* Turn off Single Step bit */  	ia64_psr(regs)->ss = 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8bc76772ad653bcaad1b0af72aafb6072ef0fa87/kprobes.c/buggy/arch/ia64/kernel/kprobes.c