daemonize("kenvctrld"); allow_signal(SIGKILL);  kenvctrld_task = current;  
static int kenvctrld(void *__unused){	int poll_interval;	int whichcpu;	char tempbuf[10];	struct i2c_child_t *cputemp;	if (NULL == (cputemp = envctrl_get_i2c_child(ENVCTRL_CPUTEMP_MON))) {		printk(KERN_ERR 		       "envctrl: kenvctrld unable to monitor CPU temp-- exiting\n");		return -ENODEV;	}	poll_interval = 5000; /* TODO env_mon_interval */	daemonize("kenvctrld");	allow_signal(SIGKILL);	kenvctrld_task = current;	printk(KERN_INFO "envctrl: %s starting...\n", current->comm);	for (;;) {		if(msleep_interruptible(poll_interval))			break;		for (whichcpu = 0; whichcpu < ENVCTRL_MAX_CPU; ++whichcpu) {			if (0 < envctrl_read_cpu_info(whichcpu, cputemp,						      ENVCTRL_CPUTEMP_MON,						      tempbuf)) {				if (tempbuf[0] >= shutdown_temperature) {					printk(KERN_CRIT 						"%s: WARNING: CPU%i temperature %i C meets or exceeds "\						"shutdown threshold %i C\n", 						current->comm, whichcpu, 						tempbuf[0], shutdown_temperature);					envctrl_do_shutdown();				}			}		}	}	printk(KERN_INFO "envctrl: %s exiting...\n", current->comm);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/218b29e0c3995ee15782de55ad1dd74cce1a728d/envctrl.c/buggy/drivers/sbus/char/envctrl.c