p->thread_info->preempt_count = 1; 
task_thread_info(p)->preempt_count = 1; 
void fastcall sched_fork(task_t *p, int clone_flags){	int cpu = get_cpu();#ifdef CONFIG_SMP	cpu = sched_balance_self(cpu, SD_BALANCE_FORK);#endif	set_task_cpu(p, cpu);	/*	 * We mark the process as running here, but have not actually	 * inserted it onto the runqueue yet. This guarantees that	 * nobody will actually run it, and a signal or other external	 * event cannot wake it up and insert it on the runqueue either.	 */	p->state = TASK_RUNNING;	INIT_LIST_HEAD(&p->run_list);	p->array = NULL;#ifdef CONFIG_SCHEDSTATS	memset(&p->sched_info, 0, sizeof(p->sched_info));#endif#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW)	p->oncpu = 0;#endif#ifdef CONFIG_PREEMPT	/* Want to start with kernel preemption disabled. */	p->thread_info->preempt_count = 1;#endif	/*	 * Share the timeslice between parent and child, thus the	 * total amount of pending timeslices in the system doesn't change,	 * resulting in more scheduling fairness.	 */	local_irq_disable();	p->time_slice = (current->time_slice + 1) >> 1;	/*	 * The remainder of the first timeslice might be recovered by	 * the parent if the child exits early enough.	 */	p->first_time_slice = 1;	current->time_slice >>= 1;	p->timestamp = sched_clock();	if (unlikely(!current->time_slice)) {		/*		 * This case is rare, it happens when the parent has only		 * a single jiffy left from its timeslice. Taking the		 * runqueue lock is not a problem.		 */		current->time_slice = 1;		scheduler_tick();	}	local_irq_enable();	put_cpu();}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a1261f54611ec4ad6a7ab7080f86747e3ac3685b/sched.c/buggy/kernel/sched.c