try_to_freeze(PF_FREEZE); 
try_to_freeze(); 
static int krxtimod(void *arg){	DECLARE_WAITQUEUE(myself, current);	rxrpc_timer_t *timer;	printk("Started krxtimod %d\n", current->pid);	daemonize("krxtimod");	complete(&krxtimod_alive);	/* loop around looking for things to attend to */ loop:	set_current_state(TASK_INTERRUPTIBLE);	add_wait_queue(&krxtimod_sleepq, &myself);	for (;;) {		unsigned long jif;		signed long timeout;		/* deal with the server being asked to die */		if (krxtimod_die) {			remove_wait_queue(&krxtimod_sleepq, &myself);			_leave("");			complete_and_exit(&krxtimod_dead, 0);		}		try_to_freeze(PF_FREEZE);		/* discard pending signals */		rxrpc_discard_my_signals();		/* work out the time to elapse before the next event */		spin_lock(&krxtimod_lock);		if (list_empty(&krxtimod_list)) {			timeout = MAX_SCHEDULE_TIMEOUT;		}		else {			timer = list_entry(krxtimod_list.next,					   rxrpc_timer_t, link);			timeout = timer->timo_jif;			jif = jiffies;			if (time_before_eq((unsigned long) timeout, jif))				goto immediate;			else {				timeout = (long) timeout - (long) jiffies;			}		}		spin_unlock(&krxtimod_lock);		schedule_timeout(timeout);		set_current_state(TASK_INTERRUPTIBLE);	}	/* the thing on the front of the queue needs processing	 * - we come here with the lock held and timer pointing to the expired	 *   entry	 */ immediate:	remove_wait_queue(&krxtimod_sleepq, &myself);	set_current_state(TASK_RUNNING);	_debug("@@@ Begin Timeout of %p", timer);	/* dequeue the timer */	list_del_init(&timer->link);	spin_unlock(&krxtimod_lock);	/* call the timeout function */	timer->ops->timed_out(timer);	_debug("@@@ End Timeout");	goto loop;} /* end krxtimod() */
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73/krxtimod.c/buggy/net/rxrpc/krxtimod.c