diff options
| -rw-r--r-- | arch/sparc/kernel/process_32.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c index 17529298c50a..c8cc461ff75f 100644 --- a/arch/sparc/kernel/process_32.c +++ b/arch/sparc/kernel/process_32.c @@ -128,8 +128,16 @@ void cpu_idle(void)          set_thread_flag(TIF_POLLING_NRFLAG);  	/* endless idle loop with no priority at all */  	while(1) { -		while (!need_resched()) -			cpu_relax(); +#ifdef CONFIG_SPARC_LEON +		if (pm_idle) { +			while (!need_resched()) +				(*pm_idle)(); +		} else +#endif +		{ +			while (!need_resched()) +				cpu_relax(); +		}  		preempt_enable_no_resched();  		schedule();  		preempt_disable(); | 
