dev->need_exit = 1; 
set_bit(W1_MASTER_NEED_EXIT, &dev->flags); 
void __w1_remove_master_device(struct w1_master *dev){	int err;	struct w1_netlink_msg msg;	dev->need_exit = 1;	err = kill_proc(dev->kpid, SIGTERM, 1);	if (err)		dev_err(&dev->dev,			 "%s: Failed to send signal to w1 kernel thread %d.\n",			 __func__, dev->kpid);	while (atomic_read(&dev->refcnt)) {		printk(KERN_INFO "Waiting for %s to become free: refcnt=%d.\n",				dev->name, atomic_read(&dev->refcnt));		if (msleep_interruptible(1000))			flush_signals(current);	}	msg.id.mst.id = dev->id;	msg.id.mst.pid = dev->kpid;	msg.type = W1_MASTER_REMOVE;	w1_netlink_send(dev, &msg);	w1_free_dev(dev);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6adf87bd7b7832105b9c6bc08adf6a4d229f1e79/w1_int.c/buggy/drivers/w1/w1_int.c