preempt_enable_no_resched(); 
int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs){	struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();	u8 *addr = (u8 *) (regs->rip - 1);	unsigned long stack_addr = (unsigned long)(kcb->jprobe_saved_rsp);	struct jprobe *jp = container_of(p, struct jprobe, kp);	if ((addr > (u8 *) jprobe_return) && (addr < (u8 *) jprobe_return_end)) {		if ((long *)regs->rsp != kcb->jprobe_saved_rsp) {			struct pt_regs *saved_regs =			    container_of(kcb->jprobe_saved_rsp,					    struct pt_regs, rsp);			printk("current rsp %p does not match saved rsp %p\n",			       (long *)regs->rsp, kcb->jprobe_saved_rsp);			printk("Saved registers for jprobe %p\n", jp);			show_registers(saved_regs);			printk("Current registers\n");			show_registers(regs);			BUG();		}		*regs = kcb->jprobe_saved_regs;		memcpy((kprobe_opcode_t *) stack_addr, kcb->jprobes_stack,		       MIN_STACK_SIZE(stack_addr));		return 1;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d217d5450f11d8c907c0458d175b0dc999b4d06d/kprobes.c/buggy/arch/x86_64/kernel/kprobes.c