aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-27 23:01:41 -0500
committerIngo Molnar <mingo@elte.hu>2009-01-28 17:20:17 -0500
commitf6f52baf2613dd319e9ba3f3319bf1f1c442e4b3 (patch)
tree1eb8f814939501c10f3f18af86f9c5a5d25c7310
parentfe402e1f2b67a63f1e53ab2a316fc20f7ca4ec91 (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>
-rw-r--r--arch/x86/include/asm/bigsmp/apic.h1
-rw-r--r--arch/x86/include/asm/es7000/apic.h1
-rw-r--r--arch/x86/include/asm/mach-default/mach_apic.h1
-rw-r--r--arch/x86/include/asm/mach-generic/mach_apic.h1
-rw-r--r--arch/x86/include/asm/numaq/apic.h1
-rw-r--r--arch/x86/include/asm/summit/apic.h1
-rw-r--r--arch/x86/kernel/apic.c4
-rw-r--r--arch/x86/mach-generic/bigsmp.c2
-rw-r--r--arch/x86/mach-generic/default.c2
-rw-r--r--arch/x86/mach-generic/es7000.c2
-rw-r--r--arch/x86/mach-generic/numaq.c2
-rw-r--r--arch/x86/mach-generic/summit.c2
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
7static inline int bigsmp_apic_id_registered(void) 6static 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
9static inline int es7000_apic_id_registered(void) 8static 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
18static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) 17static 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,