w1_slave_detach (sl); kfree (sl); 
w1_slave_detach(sl); kfree(sl); 
int w1_process(void *data){	struct w1_master *dev = (struct w1_master *) data;	struct w1_slave *sl, *sln;	daemonize("%s", dev->name);	allow_signal(SIGTERM);	while (!test_bit(W1_MASTER_NEED_EXIT, &dev->flags)) {		try_to_freeze();		msleep_interruptible(w1_timeout * 1000);		if (signal_pending(current))			flush_signals(current);		if (test_bit(W1_MASTER_NEED_EXIT, &dev->flags))			break;		if (!dev->initialized)			continue;		if (dev->search_count == 0)			continue;		if (down_interruptible(&dev->mutex))			continue;		list_for_each_entry(sl, &dev->slist, w1_slave_entry)			clear_bit(W1_SLAVE_ACTIVE, (long *)&sl->flags);		w1_search_devices(dev, w1_slave_found);		list_for_each_entry_safe(sl, sln, &dev->slist, w1_slave_entry) {			if (!test_bit(W1_SLAVE_ACTIVE, (unsigned long *)&sl->flags) && !--sl->ttl) {				list_del (&sl->w1_slave_entry);				w1_slave_detach (sl);				kfree (sl);				dev->slave_count--;			} else if (test_bit(W1_SLAVE_ACTIVE, (unsigned long *)&sl->flags))				sl->ttl = dev->slave_ttl;		}		if (dev->search_count > 0)			dev->search_count--;		up(&dev->mutex);	}	atomic_dec(&dev->refcnt);	complete_and_exit(&dev->dev_exited, 0);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d2a4ef6a0ce4d841293b49bf2cdc17a0ebfaaf9d/w1.c/buggy/drivers/w1/w1.c