 90e240142b
			
		
	
	
	90e240142b
	
	
	
		
			
			Both functions are mostly identical. The differences are: - x86_32's cpu_idle() makes use of check_pgt_cache(), which is a nop on both x86_32 and x86_64. - x86_64's cpu_idle() uses enter/__exit_idle/(), on x86_32 these function are a nop. - In contrast to x86_32, x86_64 calls rcu_idle_enter/exit() in the innermost loop because idle notifications need RCU. Calling these function on x86_32 also in the innermost loop does not hurt. So we can merge both functions. Signed-off-by: Richard Weinberger <richard@nod.at> Acked-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: paulmck@linux.vnet.ibm.com Cc: josh@joshtriplett.org Cc: tj@kernel.org Link: http://lkml.kernel.org/r/1332709204-22496-1-git-send-email-richard@nod.at Signed-off-by: Ingo Molnar <mingo@kernel.org>
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			532 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			532 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ASM_X86_IDLE_H
 | |
| #define _ASM_X86_IDLE_H
 | |
| 
 | |
| #define IDLE_START 1
 | |
| #define IDLE_END 2
 | |
| 
 | |
| struct notifier_block;
 | |
| void idle_notifier_register(struct notifier_block *n);
 | |
| void idle_notifier_unregister(struct notifier_block *n);
 | |
| 
 | |
| #ifdef CONFIG_X86_64
 | |
| void enter_idle(void);
 | |
| void exit_idle(void);
 | |
| #else /* !CONFIG_X86_64 */
 | |
| static inline void enter_idle(void) { }
 | |
| static inline void exit_idle(void) { }
 | |
| static inline void __exit_idle(void) { }
 | |
| #endif /* CONFIG_X86_64 */
 | |
| 
 | |
| void amd_e400_remove_cpu(int cpu);
 | |
| 
 | |
| #endif /* _ASM_X86_IDLE_H */
 |