if (group_dead) { del_timer_sync(&tsk->signal->real_timer); 
if (group_dead) 
fastcall NORET_TYPE void do_exit(long code){	struct task_struct *tsk = current;	int group_dead;	profile_task_exit(tsk);	if (unlikely(in_interrupt()))		panic("Aiee, killing interrupt handler!");	if (unlikely(!tsk->pid))		panic("Attempted to kill the idle task!");	if (unlikely(tsk->pid == 1))		panic("Attempted to kill init!");	if (tsk->io_context)		exit_io_context();	if (unlikely(current->ptrace & PT_TRACE_EXIT)) {		current->ptrace_message = code;		ptrace_notify((PTRACE_EVENT_EXIT << 8) | SIGTRAP);	}	tsk->flags |= PF_EXITING;	/*	 * Make sure we don't try to process any timer firings	 * while we are already exiting.	 */ 	tsk->it_virt_expires = cputime_zero; 	tsk->it_prof_expires = cputime_zero;	tsk->it_sched_expires = 0;	if (unlikely(in_atomic()))		printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",				current->comm, current->pid,				preempt_count());	acct_update_integrals(tsk);	update_mem_hiwater(tsk);	group_dead = atomic_dec_and_test(&tsk->signal->live);	if (group_dead) { 		del_timer_sync(&tsk->signal->real_timer);		acct_process(code);	}	exit_mm(tsk);	exit_sem(tsk);	__exit_files(tsk);	__exit_fs(tsk);	exit_namespace(tsk);	exit_thread();	cpuset_exit(tsk);	exit_keys(tsk);	if (group_dead && tsk->signal->leader)		disassociate_ctty(1);	module_put(tsk->thread_info->exec_domain->module);	if (tsk->binfmt)		module_put(tsk->binfmt->module);	tsk->exit_code = code;	exit_notify(tsk);#ifdef CONFIG_NUMA	mpol_free(tsk->mempolicy);	tsk->mempolicy = NULL;#endif	BUG_ON(!(current->flags & PF_DEAD));	schedule();	BUG();	/* Avoid "noreturn function does return".  */	for (;;) ;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/caf2857ac6e0ba2651e722f05d5f7d3ec8ef2615/exit.c/buggy/kernel/exit.c