if (current->flags & PF_FREEZE) refrigerator(PF_FREEZE); 
try_to_freeze(); 
static int irda_thread(void *startup){	DECLARE_WAITQUEUE(wait, current);	daemonize("kIrDAd");	irda_rq_queue.thread = current;	complete((struct completion *)startup);	while (irda_rq_queue.thread != NULL) {		/* We use TASK_INTERRUPTIBLE, rather than		 * TASK_UNINTERRUPTIBLE.  Andrew Morton made this		 * change ; he told me that it is safe, because "signal		 * blocking is now handled in daemonize()", he added		 * that the problem is that "uninterruptible sleep		 * contributes to load average", making user worry.		 * Jean II */		set_task_state(current, TASK_INTERRUPTIBLE);		add_wait_queue(&irda_rq_queue.kick, &wait);		if (list_empty(&irda_rq_queue.request_list))			schedule();		else			__set_task_state(current, TASK_RUNNING);		remove_wait_queue(&irda_rq_queue.kick, &wait);		/* make swsusp happy with our thread */		if (current->flags & PF_FREEZE)			refrigerator(PF_FREEZE);		run_irda_queue();	}#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,35)	reparent_to_init();#endif	complete_and_exit(&irda_rq_queue.exit, 0);	/* never reached */	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73/sir_kthread.c/clean/drivers/net/irda/sir_kthread.c