diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-27 23:01:41 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-28 17:20:17 -0500 |
commit | f6f52baf2613dd319e9ba3f3319bf1f1c442e4b3 (patch) | |
tree | 1eb8f814939501c10f3f18af86f9c5a5d25c7310 /arch | |
parent | fe402e1f2b67a63f1e53ab2a316fc20f7ca4ec91 (diff) |
x86: clean up esr_disable() methods
Impact: cleanup
Most subarchitectures want to disable the APIC ESR (Error Status Register),
because they generally have hardware hacks that wrap standard CPUs into
a bigger system and hence the APIC bus is quite non-standard and weirdnesses
(lockups) have been seen with ESR reporting.
Remove the esr_disable macros and put the desired flag into each
subarchitecture's genapic template directly.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/include/asm/bigsmp/apic.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/es7000/apic.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/mach-default/mach_apic.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/mach-generic/mach_apic.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/numaq/apic.h | 1 | ||||
-rw-r--r-- | arch/x86/include/asm/summit/apic.h | 1 | ||||
-rw-r--r-- | arch/x86/kernel/apic.c | 4 | ||||
-rw-r--r-- | arch/x86/mach-generic/bigsmp.c | 2 | ||||
-rw-r--r-- | arch/x86/mach-generic/default.c | 2 | ||||
-rw-r--r-- | arch/x86/mach-generic/es7000.c | 2 | ||||
-rw-r--r-- | arch/x86/mach-generic/numaq.c | 2 | ||||
-rw-r--r-- | arch/x86/mach-generic/summit.c | 2 |
12 files changed, 7 insertions, 13 deletions
diff --git a/arch/x86/include/asm/bigsmp/apic.h b/arch/x86/include/asm/bigsmp/apic.h index d6aeca3c5a8d..b550cb111028 100644 --- a/arch/x86/include/asm/bigsmp/apic.h +++ b/arch/x86/include/asm/bigsmp/apic.h | |||
@@ -2,7 +2,6 @@ | |||
2 | #define __ASM_MACH_APIC_H | 2 | #define __ASM_MACH_APIC_H |
3 | 3 | ||
4 | #define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu)) | 4 | #define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu)) |
5 | #define esr_disable (1) | ||
6 | 5 | ||
7 | static inline int bigsmp_apic_id_registered(void) | 6 | static inline int bigsmp_apic_id_registered(void) |
8 | { | 7 | { |
diff --git a/arch/x86/include/asm/es7000/apic.h b/arch/x86/include/asm/es7000/apic.h index 53adda099c96..aa11c768bed7 100644 --- a/arch/x86/include/asm/es7000/apic.h +++ b/arch/x86/include/asm/es7000/apic.h | |||
@@ -4,7 +4,6 @@ | |||
4 | #include <linux/gfp.h> | 4 | #include <linux/gfp.h> |
5 | 5 | ||
6 | #define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu) | 6 | #define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu) |
7 | #define esr_disable (1) | ||
8 | 7 | ||
9 | static inline int es7000_apic_id_registered(void) | 8 | static inline int es7000_apic_id_registered(void) |
10 | { | 9 | { |
diff --git a/arch/x86/include/asm/mach-default/mach_apic.h b/arch/x86/include/asm/mach-default/mach_apic.h index 77a972475878..5f8d17fdc965 100644 --- a/arch/x86/include/asm/mach-default/mach_apic.h +++ b/arch/x86/include/asm/mach-default/mach_apic.h | |||
@@ -18,7 +18,6 @@ static inline const struct cpumask *default_target_cpus(void) | |||
18 | } | 18 | } |
19 | 19 | ||
20 | #define NO_BALANCE_IRQ (0) | 20 | #define NO_BALANCE_IRQ (0) |
21 | #define esr_disable (0) | ||
22 | 21 | ||
23 | #ifdef CONFIG_X86_64 | 22 | #ifdef CONFIG_X86_64 |
24 | #include <asm/genapic.h> | 23 | #include <asm/genapic.h> |
diff --git a/arch/x86/include/asm/mach-generic/mach_apic.h b/arch/x86/include/asm/mach-generic/mach_apic.h index da2d7780cb52..63fe985219f9 100644 --- a/arch/x86/include/asm/mach-generic/mach_apic.h +++ b/arch/x86/include/asm/mach-generic/mach_apic.h | |||
@@ -3,7 +3,6 @@ | |||
3 | 3 | ||
4 | #include <asm/genapic.h> | 4 | #include <asm/genapic.h> |
5 | 5 | ||
6 | #define esr_disable (apic->ESR_DISABLE) | ||
7 | #define NO_BALANCE_IRQ (apic->no_balance_irq) | 6 | #define NO_BALANCE_IRQ (apic->no_balance_irq) |
8 | #undef APIC_DEST_LOGICAL | 7 | #undef APIC_DEST_LOGICAL |
9 | #define APIC_DEST_LOGICAL (apic->apic_destination_logical) | 8 | #define APIC_DEST_LOGICAL (apic->apic_destination_logical) |
diff --git a/arch/x86/include/asm/numaq/apic.h b/arch/x86/include/asm/numaq/apic.h index 1111ff9e41de..8ecb3b45c6c4 100644 --- a/arch/x86/include/asm/numaq/apic.h +++ b/arch/x86/include/asm/numaq/apic.h | |||
@@ -13,7 +13,6 @@ static inline const cpumask_t *numaq_target_cpus(void) | |||
13 | } | 13 | } |
14 | 14 | ||
15 | #define NO_BALANCE_IRQ (1) | 15 | #define NO_BALANCE_IRQ (1) |
16 | #define esr_disable (1) | ||
17 | 16 | ||
18 | static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) | 17 | static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) |
19 | { | 18 | { |
diff --git a/arch/x86/include/asm/summit/apic.h b/arch/x86/include/asm/summit/apic.h index cf5036f1ce6d..84679e687add 100644 --- a/arch/x86/include/asm/summit/apic.h +++ b/arch/x86/include/asm/summit/apic.h | |||
@@ -4,7 +4,6 @@ | |||
4 | #include <asm/smp.h> | 4 | #include <asm/smp.h> |
5 | #include <linux/gfp.h> | 5 | #include <linux/gfp.h> |
6 | 6 | ||
7 | #define esr_disable (1) | ||
8 | #define NO_BALANCE_IRQ (0) | 7 | #define NO_BALANCE_IRQ (0) |
9 | 8 | ||
10 | /* In clustered mode, the high nibble of APIC ID is a cluster number. | 9 | /* In clustered mode, the high nibble of APIC ID is a cluster number. |
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c index b6740de18fbb..69d8c30d5711 100644 --- a/arch/x86/kernel/apic.c +++ b/arch/x86/kernel/apic.c | |||
@@ -1107,7 +1107,7 @@ static void __cpuinit lapic_setup_esr(void) | |||
1107 | return; | 1107 | return; |
1108 | } | 1108 | } |
1109 | 1109 | ||
1110 | if (esr_disable) { | 1110 | if (apic->ESR_DISABLE) { |
1111 | /* | 1111 | /* |
1112 | * Something untraceable is creating bad interrupts on | 1112 | * Something untraceable is creating bad interrupts on |
1113 | * secondary quads ... for the moment, just leave the | 1113 | * secondary quads ... for the moment, just leave the |
@@ -1157,7 +1157,7 @@ void __cpuinit setup_local_APIC(void) | |||
1157 | 1157 | ||
1158 | #ifdef CONFIG_X86_32 | 1158 | #ifdef CONFIG_X86_32 |
1159 | /* Pound the ESR really hard over the head with a big hammer - mbligh */ | 1159 | /* Pound the ESR really hard over the head with a big hammer - mbligh */ |
1160 | if (lapic_is_integrated() && esr_disable) { | 1160 | if (lapic_is_integrated() && apic->ESR_DISABLE) { |
1161 | apic_write(APIC_ESR, 0); | 1161 | apic_write(APIC_ESR, 0); |
1162 | apic_write(APIC_ESR, 0); | 1162 | apic_write(APIC_ESR, 0); |
1163 | apic_write(APIC_ESR, 0); | 1163 | apic_write(APIC_ESR, 0); |
diff --git a/arch/x86/mach-generic/bigsmp.c b/arch/x86/mach-generic/bigsmp.c index d3cead2d2fc8..f0bb72674f73 100644 --- a/arch/x86/mach-generic/bigsmp.c +++ b/arch/x86/mach-generic/bigsmp.c | |||
@@ -69,7 +69,7 @@ struct genapic apic_bigsmp = { | |||
69 | .irq_dest_mode = 0, | 69 | .irq_dest_mode = 0, |
70 | 70 | ||
71 | .target_cpus = bigsmp_target_cpus, | 71 | .target_cpus = bigsmp_target_cpus, |
72 | .ESR_DISABLE = esr_disable, | 72 | .ESR_DISABLE = 1, |
73 | .apic_destination_logical = APIC_DEST_LOGICAL, | 73 | .apic_destination_logical = APIC_DEST_LOGICAL, |
74 | .check_apicid_used = check_apicid_used, | 74 | .check_apicid_used = check_apicid_used, |
75 | .check_apicid_present = check_apicid_present, | 75 | .check_apicid_present = check_apicid_present, |
diff --git a/arch/x86/mach-generic/default.c b/arch/x86/mach-generic/default.c index a483e22273e5..c30141a9aca0 100644 --- a/arch/x86/mach-generic/default.c +++ b/arch/x86/mach-generic/default.c | |||
@@ -36,7 +36,7 @@ struct genapic apic_default = { | |||
36 | .irq_dest_mode = 1, | 36 | .irq_dest_mode = 1, |
37 | 37 | ||
38 | .target_cpus = default_target_cpus, | 38 | .target_cpus = default_target_cpus, |
39 | .ESR_DISABLE = esr_disable, | 39 | .ESR_DISABLE = 0, |
40 | .apic_destination_logical = APIC_DEST_LOGICAL, | 40 | .apic_destination_logical = APIC_DEST_LOGICAL, |
41 | .check_apicid_used = check_apicid_used, | 41 | .check_apicid_used = check_apicid_used, |
42 | .check_apicid_present = check_apicid_present, | 42 | .check_apicid_present = check_apicid_present, |
diff --git a/arch/x86/mach-generic/es7000.c b/arch/x86/mach-generic/es7000.c index e31f0c35470d..e8aa8fd4f49f 100644 --- a/arch/x86/mach-generic/es7000.c +++ b/arch/x86/mach-generic/es7000.c | |||
@@ -112,7 +112,7 @@ struct genapic apic_es7000 = { | |||
112 | .irq_dest_mode = 0, | 112 | .irq_dest_mode = 0, |
113 | 113 | ||
114 | .target_cpus = es7000_target_cpus, | 114 | .target_cpus = es7000_target_cpus, |
115 | .ESR_DISABLE = esr_disable, | 115 | .ESR_DISABLE = 1, |
116 | .apic_destination_logical = APIC_DEST_LOGICAL, | 116 | .apic_destination_logical = APIC_DEST_LOGICAL, |
117 | .check_apicid_used = check_apicid_used, | 117 | .check_apicid_used = check_apicid_used, |
118 | .check_apicid_present = check_apicid_present, | 118 | .check_apicid_present = check_apicid_present, |
diff --git a/arch/x86/mach-generic/numaq.c b/arch/x86/mach-generic/numaq.c index 4b84b5970fbe..860edc8bd903 100644 --- a/arch/x86/mach-generic/numaq.c +++ b/arch/x86/mach-generic/numaq.c | |||
@@ -56,7 +56,7 @@ struct genapic apic_numaq = { | |||
56 | .irq_dest_mode = 0, | 56 | .irq_dest_mode = 0, |
57 | 57 | ||
58 | .target_cpus = numaq_target_cpus, | 58 | .target_cpus = numaq_target_cpus, |
59 | .ESR_DISABLE = esr_disable, | 59 | .ESR_DISABLE = 1, |
60 | .apic_destination_logical = APIC_DEST_LOGICAL, | 60 | .apic_destination_logical = APIC_DEST_LOGICAL, |
61 | .check_apicid_used = check_apicid_used, | 61 | .check_apicid_used = check_apicid_used, |
62 | .check_apicid_present = check_apicid_present, | 62 | .check_apicid_present = check_apicid_present, |
diff --git a/arch/x86/mach-generic/summit.c b/arch/x86/mach-generic/summit.c index e6b956a08484..cd5ef115a4ee 100644 --- a/arch/x86/mach-generic/summit.c +++ b/arch/x86/mach-generic/summit.c | |||
@@ -49,7 +49,7 @@ struct genapic apic_summit = { | |||
49 | .irq_dest_mode = 1, | 49 | .irq_dest_mode = 1, |
50 | 50 | ||
51 | .target_cpus = summit_target_cpus, | 51 | .target_cpus = summit_target_cpus, |
52 | .ESR_DISABLE = esr_disable, | 52 | .ESR_DISABLE = 1, |
53 | .apic_destination_logical = APIC_DEST_LOGICAL, | 53 | .apic_destination_logical = APIC_DEST_LOGICAL, |
54 | .check_apicid_used = check_apicid_used, | 54 | .check_apicid_used = check_apicid_used, |
55 | .check_apicid_present = check_apicid_present, | 55 | .check_apicid_present = check_apicid_present, |