x86: clean up esr_disable() methods
authorIngo Molnar <mingo@elte.hu>
Wed, 28 Jan 2009 04:01:41 +0000 (05:01 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 28 Jan 2009 22:20:17 +0000 (23:20 +0100)
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>
12 files changed:
arch/x86/include/asm/bigsmp/apic.h
arch/x86/include/asm/es7000/apic.h
arch/x86/include/asm/mach-default/mach_apic.h
arch/x86/include/asm/mach-generic/mach_apic.h
arch/x86/include/asm/numaq/apic.h
arch/x86/include/asm/summit/apic.h
arch/x86/kernel/apic.c
arch/x86/mach-generic/bigsmp.c
arch/x86/mach-generic/default.c
arch/x86/mach-generic/es7000.c
arch/x86/mach-generic/numaq.c
arch/x86/mach-generic/summit.c

index d6aeca3c5a8d0721363f0121f64bd528adc40288..b550cb1110286fdad83565671fd5fd4c2871c96b 100644 (file)
@@ -2,7 +2,6 @@
 #define __ASM_MACH_APIC_H
 
 #define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu))
-#define esr_disable (1)
 
 static inline int bigsmp_apic_id_registered(void)
 {
index 53adda099c968ba6b03583ac45f71eccdcf3bcc9..aa11c768bed7b63d83f6c1da20675269dfd56591 100644 (file)
@@ -4,7 +4,6 @@
 #include <linux/gfp.h>
 
 #define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu)
-#define esr_disable (1)
 
 static inline int es7000_apic_id_registered(void)
 {
index 77a97247587837f202f6ff43f847df101abb7b92..5f8d17fdc9653d3e761c9a620ee286f7e83bfd5d 100644 (file)
@@ -18,7 +18,6 @@ static inline const struct cpumask *default_target_cpus(void)
 } 
 
 #define NO_BALANCE_IRQ (0)
-#define esr_disable (0)
 
 #ifdef CONFIG_X86_64
 #include <asm/genapic.h>
index da2d7780cb524b84075e0823acf1fa70ad706019..63fe985219f9f7d4b9c52a6a839c3e055229ca32 100644 (file)
@@ -3,7 +3,6 @@
 
 #include <asm/genapic.h>
 
-#define esr_disable (apic->ESR_DISABLE)
 #define NO_BALANCE_IRQ (apic->no_balance_irq)
 #undef APIC_DEST_LOGICAL
 #define APIC_DEST_LOGICAL (apic->apic_destination_logical)
index 1111ff9e41de3ab48248cc4d6ebfa7e8595b9cae..8ecb3b45c6c4160487d1a56e17ec6232f3a7548b 100644 (file)
@@ -13,7 +13,6 @@ static inline const cpumask_t *numaq_target_cpus(void)
 }
 
 #define NO_BALANCE_IRQ (1)
-#define esr_disable (1)
 
 static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
 {
index cf5036f1ce6dc4487c17c07da0ce43450153ee7f..84679e687add0829477f3a03bde27be93b9b182d 100644 (file)
@@ -4,7 +4,6 @@
 #include <asm/smp.h>
 #include <linux/gfp.h>
 
-#define esr_disable (1)
 #define NO_BALANCE_IRQ (0)
 
 /* In clustered mode, the high nibble of APIC ID is a cluster number.
index b6740de18fbba0564590557cc8a5ff1d9f1f5546..69d8c30d5711da7fa627b7de21973d6076161e11 100644 (file)
@@ -1107,7 +1107,7 @@ static void __cpuinit lapic_setup_esr(void)
                return;
        }
 
-       if (esr_disable) {
+       if (apic->ESR_DISABLE) {
                /*
                 * Something untraceable is creating bad interrupts on
                 * secondary quads ... for the moment, just leave the
@@ -1157,7 +1157,7 @@ void __cpuinit setup_local_APIC(void)
 
 #ifdef CONFIG_X86_32
        /* Pound the ESR really hard over the head with a big hammer - mbligh */
-       if (lapic_is_integrated() && esr_disable) {
+       if (lapic_is_integrated() && apic->ESR_DISABLE) {
                apic_write(APIC_ESR, 0);
                apic_write(APIC_ESR, 0);
                apic_write(APIC_ESR, 0);
index d3cead2d2fc847d60e1f58a7aa696aa0c1ef9464..f0bb72674f7301506b222aa51260bbd90b2366ea 100644 (file)
@@ -69,7 +69,7 @@ struct genapic apic_bigsmp = {
        .irq_dest_mode                  = 0,
 
        .target_cpus                    = bigsmp_target_cpus,
-       .ESR_DISABLE                    = esr_disable,
+       .ESR_DISABLE                    = 1,
        .apic_destination_logical       = APIC_DEST_LOGICAL,
        .check_apicid_used              = check_apicid_used,
        .check_apicid_present           = check_apicid_present,
index a483e22273e5a5166eb9b55db58e81ef4786bc33..c30141a9aca06f91dd936d39228ea4a27557dcf9 100644 (file)
@@ -36,7 +36,7 @@ struct genapic apic_default = {
        .irq_dest_mode                  = 1,
 
        .target_cpus                    = default_target_cpus,
-       .ESR_DISABLE                    = esr_disable,
+       .ESR_DISABLE                    = 0,
        .apic_destination_logical       = APIC_DEST_LOGICAL,
        .check_apicid_used              = check_apicid_used,
        .check_apicid_present           = check_apicid_present,
index e31f0c35470dce4288c7c97128bc8c4fe53819a2..e8aa8fd4f49fa15759c11a45c03c344a47ccd00c 100644 (file)
@@ -112,7 +112,7 @@ struct genapic apic_es7000 = {
        .irq_dest_mode                  = 0,
 
        .target_cpus                    = es7000_target_cpus,
-       .ESR_DISABLE                    = esr_disable,
+       .ESR_DISABLE                    = 1,
        .apic_destination_logical       = APIC_DEST_LOGICAL,
        .check_apicid_used              = check_apicid_used,
        .check_apicid_present           = check_apicid_present,
index 4b84b5970fbe0501cdf44236b2cc502f42efee08..860edc8bd9033a2c254e4e4e2a37902e7b0f4c99 100644 (file)
@@ -56,7 +56,7 @@ struct genapic apic_numaq = {
        .irq_dest_mode                  = 0,
 
        .target_cpus                    = numaq_target_cpus,
-       .ESR_DISABLE                    = esr_disable,
+       .ESR_DISABLE                    = 1,
        .apic_destination_logical       = APIC_DEST_LOGICAL,
        .check_apicid_used              = check_apicid_used,
        .check_apicid_present           = check_apicid_present,
index e6b956a08484f1345019b0a2f53dab40cea23440..cd5ef115a4ee20ded8eb1ef646595a467c9567aa 100644 (file)
@@ -49,7 +49,7 @@ struct genapic apic_summit = {
        .irq_dest_mode                  = 1,
 
        .target_cpus                    = summit_target_cpus,
-       .ESR_DISABLE                    = esr_disable,
+       .ESR_DISABLE                    = 1,
        .apic_destination_logical       = APIC_DEST_LOGICAL,
        .check_apicid_used              = check_apicid_used,
        .check_apicid_present           = check_apicid_present,