diff options
Diffstat (limited to 'arch/mips/include/asm/bugs.h')
-rw-r--r-- | arch/mips/include/asm/bugs.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/arch/mips/include/asm/bugs.h b/arch/mips/include/asm/bugs.h new file mode 100644 index 000000000000..9dc10df32078 --- /dev/null +++ b/arch/mips/include/asm/bugs.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * This is included by init/main.c to check for architecture-dependent bugs. | ||
3 | * | ||
4 | * Copyright (C) 2007 Maciej W. Rozycki | ||
5 | * | ||
6 | * Needs: | ||
7 | * void check_bugs(void); | ||
8 | */ | ||
9 | #ifndef _ASM_BUGS_H | ||
10 | #define _ASM_BUGS_H | ||
11 | |||
12 | #include <linux/bug.h> | ||
13 | #include <linux/delay.h> | ||
14 | |||
15 | #include <asm/cpu.h> | ||
16 | #include <asm/cpu-info.h> | ||
17 | |||
18 | extern int daddiu_bug; | ||
19 | |||
20 | extern void check_bugs64_early(void); | ||
21 | |||
22 | extern void check_bugs32(void); | ||
23 | extern void check_bugs64(void); | ||
24 | |||
25 | static inline void check_bugs_early(void) | ||
26 | { | ||
27 | #ifdef CONFIG_64BIT | ||
28 | check_bugs64_early(); | ||
29 | #endif | ||
30 | } | ||
31 | |||
32 | static inline void check_bugs(void) | ||
33 | { | ||
34 | unsigned int cpu = smp_processor_id(); | ||
35 | |||
36 | cpu_data[cpu].udelay_val = loops_per_jiffy; | ||
37 | check_bugs32(); | ||
38 | #ifdef CONFIG_64BIT | ||
39 | check_bugs64(); | ||
40 | #endif | ||
41 | } | ||
42 | |||
43 | static inline int r4k_daddiu_bug(void) | ||
44 | { | ||
45 | #ifdef CONFIG_64BIT | ||
46 | WARN_ON(daddiu_bug < 0); | ||
47 | return daddiu_bug != 0; | ||
48 | #else | ||
49 | return 0; | ||
50 | #endif | ||
51 | } | ||
52 | |||
53 | #endif /* _ASM_BUGS_H */ | ||