if (can_do_pal_halt) clear_thread_flag(TIF_POLLING_NRFLAG); else set_thread_flag(TIF_POLLING_NRFLAG);
cpu_idle (void){	void (*mark_idle)(int) = ia64_mark_idle;  	int cpu = smp_processor_id();	set_thread_flag(TIF_POLLING_NRFLAG);	/* endless idle loop with no priority at all */	while (1) {		if (!need_resched()) {			void (*idle)(void);#ifdef CONFIG_SMP			min_xtp();#endif			if (__get_cpu_var(cpu_idle_state))				__get_cpu_var(cpu_idle_state) = 0;			rmb();			if (mark_idle)				(*mark_idle)(1);			idle = pm_idle;			if (!idle)				idle = default_idle;			(*idle)();			if (mark_idle)				(*mark_idle)(0);#ifdef CONFIG_SMP			normal_xtp();#endif		}		preempt_enable_no_resched();		schedule();		preempt_disable();		check_pgt_cache();		if (cpu_is_offline(cpu))			play_dead();	}}