| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * This is included by init/main.c to check for architecture-dependent bugs. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2007-10-23 12:43:11 +01:00
										 |  |  |  * Copyright (C) 2007  Maciej W. Rozycki | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  * Needs: | 
					
						
							|  |  |  |  *	void check_bugs(void); | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef _ASM_BUGS_H
 | 
					
						
							|  |  |  | #define _ASM_BUGS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-23 12:43:11 +01:00
										 |  |  | #include <linux/bug.h>
 | 
					
						
							| 
									
										
										
										
											2005-04-13 17:36:49 +00:00
										 |  |  | #include <linux/delay.h>
 | 
					
						
							| 
									
										
										
										
											2009-06-19 14:05:26 +01:00
										 |  |  | #include <linux/smp.h>
 | 
					
						
							| 
									
										
										
										
											2007-10-23 12:43:11 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-13 13:37:32 +00:00
										 |  |  | #include <asm/cpu.h>
 | 
					
						
							|  |  |  | #include <asm/cpu-info.h>
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-23 12:43:11 +01:00
										 |  |  | extern int daddiu_bug; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void check_bugs64_early(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | extern void check_bugs32(void); | 
					
						
							|  |  |  | extern void check_bugs64(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-23 12:43:11 +01:00
										 |  |  | static inline void check_bugs_early(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #ifdef CONFIG_64BIT
 | 
					
						
							|  |  |  | 	check_bugs64_early(); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | static inline void check_bugs(void) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2005-04-13 13:37:32 +00:00
										 |  |  | 	unsigned int cpu = smp_processor_id(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	cpu_data[cpu].udelay_val = loops_per_jiffy; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	check_bugs32(); | 
					
						
							| 
									
										
										
										
											2005-09-03 15:56:16 -07:00
										 |  |  | #ifdef CONFIG_64BIT
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	check_bugs64(); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-23 12:43:11 +01:00
										 |  |  | static inline int r4k_daddiu_bug(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #ifdef CONFIG_64BIT
 | 
					
						
							|  |  |  | 	WARN_ON(daddiu_bug < 0); | 
					
						
							|  |  |  | 	return daddiu_bug != 0; | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #endif /* _ASM_BUGS_H */
 |