 if (kexec_should_crash(current)) crash_kexec(regs);  
void die(const char * str, struct pt_regs * regs, long err){	static struct {		spinlock_t lock;		u32 lock_owner;		int lock_owner_depth;	} die = {		.lock =			SPIN_LOCK_UNLOCKED,		.lock_owner =		-1,		.lock_owner_depth =	0	};	static int die_counter;	if (die.lock_owner != raw_smp_processor_id()) {		console_verbose();		spin_lock_irq(&die.lock);		die.lock_owner = smp_processor_id();		die.lock_owner_depth = 0;		bust_spinlocks(1);	}	if (++die.lock_owner_depth < 3) {		int nl = 0;		handle_BUG(regs);		printk(KERN_ALERT "%s: %04lx [#%d]\n", str, err & 0xffff, ++die_counter);#ifdef CONFIG_PREEMPT		printk("PREEMPT ");		nl = 1;#endif#ifdef CONFIG_SMP		printk("SMP ");		nl = 1;#endif#ifdef CONFIG_DEBUG_PAGEALLOC		printk("DEBUG_PAGEALLOC");		nl = 1;#endif		if (nl)			printk("\n");	notify_die(DIE_OOPS, (char *)str, regs, err, 255, SIGSEGV);		show_registers(regs);  	} else		printk(KERN_ERR "Recursive die() failure, output suppressed\n");	bust_spinlocks(0);	die.lock_owner = -1;	spin_unlock_irq(&die.lock);	if (in_interrupt())		panic("Fatal exception in interrupt");	if (panic_on_oops) {		printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n");		ssleep(5);		panic("Fatal exception");	}	do_exit(SIGSEGV);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6e274d144302068a00794ec22e73520c0615cb6f/traps.c/clean/arch/i386/kernel/traps.c