if (preop_val == WDOG_PREOP_PANIC) panic("Watchdog pre-timeout"); else if (preop_val == WDOG_PREOP_GIVE_DATA) { 
if (preop_val == WDOG_PREOP_PANIC) { if (atomic_inc_and_test(&preop_panic_excl)) panic("Watchdog pre-timeout"); } else if (preop_val == WDOG_PREOP_GIVE_DATA) { 
static void ipmi_wdog_pretimeout_handler(void *handler_data){	if (preaction_val != WDOG_PRETIMEOUT_NONE) {		if (preop_val == WDOG_PREOP_PANIC)			panic("Watchdog pre-timeout");		else if (preop_val == WDOG_PREOP_GIVE_DATA) {			spin_lock(&ipmi_read_lock);			data_to_read = 1;			wake_up_interruptible(&read_q);			kill_fasync(&fasync_q, SIGIO, POLL_IN);			spin_unlock(&ipmi_read_lock);		}	}	/* On some machines, the heartbeat will give	   an error and not work unless we re-enable	   the timer.   So do so. */	pretimeout_since_last_heartbeat = 1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b385676b355549afc9a7507ce09c7df47f166521/ipmi_watchdog.c/buggy/drivers/char/ipmi/ipmi_watchdog.c