struct task_struct *tsk = current; tsk->thread.error_code = error_code; tsk->thread.trap_no = trapnr; 
static void do_trap(int trapnr, int signr, char *str, int vm86,			   struct pt_regs * regs, long error_code, siginfo_t *info){	if (regs->eflags & VM_MASK) {		if (vm86)			goto vm86_trap;		goto trap_signal;	}	if (!user_mode(regs))		goto kernel_trap;	trap_signal: {		struct task_struct *tsk = current;		tsk->thread.error_code = error_code;		tsk->thread.trap_no = trapnr;		if (info)			force_sig_info(signr, info, tsk);		else			force_sig(signr, tsk);		return;	}	kernel_trap: {		if (!fixup_exception(regs))			die(str, regs, error_code);		return;	}	vm86_trap: {		int ret = handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, trapnr);		if (ret) goto trap_signal;		return;	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4f339ecb30c759f94a29992d4635d9194132b6cf/traps.c/buggy/arch/i386/kernel/traps.c