jprobe_saved_regs = *regs; jprobe_saved_rsp = (long *) regs->rsp; addr = (unsigned long)jprobe_saved_rsp;
kcb->jprobe_saved_regs = *regs; kcb->jprobe_saved_rsp = (long *) regs->rsp; addr = (unsigned long)(kcb->jprobe_saved_rsp);
int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs){	struct jprobe *jp = container_of(p, struct jprobe, kp);	unsigned long addr;	jprobe_saved_regs = *regs;	jprobe_saved_rsp = (long *) regs->rsp;	addr = (unsigned long)jprobe_saved_rsp;	/*	 * As Linus pointed out, gcc assumes that the callee	 * owns the argument space and could overwrite it, e.g.	 * tailcall optimization. So, to be absolutely safe	 * we also save and restore enough stack bytes to cover	 * the argument area.	 */	memcpy(jprobes_stack, (kprobe_opcode_t *) addr, MIN_STACK_SIZE(addr));	regs->eflags &= ~IF_MASK;	regs->rip = (unsigned long)(jp->entry);	return 1;}