Commit f6f52baf authored by Ingo Molnar's avatar Ingo Molnar

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: default avatarIngo Molnar <mingo@elte.hu>
parent fe402e1f
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
#define __ASM_MACH_APIC_H #define __ASM_MACH_APIC_H
#define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu)) #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) static inline int bigsmp_apic_id_registered(void)
{ {
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#include <linux/gfp.h> #include <linux/gfp.h>
#define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu) #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) static inline int es7000_apic_id_registered(void)
{ {
......
...@@ -18,7 +18,6 @@ static inline const struct cpumask *default_target_cpus(void) ...@@ -18,7 +18,6 @@ static inline const struct cpumask *default_target_cpus(void)
} }
#define NO_BALANCE_IRQ (0) #define NO_BALANCE_IRQ (0)
#define esr_disable (0)
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_64
#include <asm/genapic.h> #include <asm/genapic.h>
......
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
#include <asm/genapic.h> #include <asm/genapic.h>
#define esr_disable (apic->ESR_DISABLE)
#define NO_BALANCE_IRQ (apic->no_balance_irq) #define NO_BALANCE_IRQ (apic->no_balance_irq)
#undef APIC_DEST_LOGICAL #undef APIC_DEST_LOGICAL
#define APIC_DEST_LOGICAL (apic->apic_destination_logical) #define APIC_DEST_LOGICAL (apic->apic_destination_logical)
......
...@@ -13,7 +13,6 @@ static inline const cpumask_t *numaq_target_cpus(void) ...@@ -13,7 +13,6 @@ static inline const cpumask_t *numaq_target_cpus(void)
} }
#define NO_BALANCE_IRQ (1) #define NO_BALANCE_IRQ (1)
#define esr_disable (1)
static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid) static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
{ {
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#include <asm/smp.h> #include <asm/smp.h>
#include <linux/gfp.h> #include <linux/gfp.h>
#define esr_disable (1)
#define NO_BALANCE_IRQ (0) #define NO_BALANCE_IRQ (0)
/* In clustered mode, the high nibble of APIC ID is a cluster number. /* In clustered mode, the high nibble of APIC ID is a cluster number.
......
...@@ -1107,7 +1107,7 @@ static void __cpuinit lapic_setup_esr(void) ...@@ -1107,7 +1107,7 @@ static void __cpuinit lapic_setup_esr(void)
return; return;
} }
if (esr_disable) { if (apic->ESR_DISABLE) {
/* /*
* Something untraceable is creating bad interrupts on * Something untraceable is creating bad interrupts on
* secondary quads ... for the moment, just leave the * secondary quads ... for the moment, just leave the
...@@ -1157,7 +1157,7 @@ void __cpuinit setup_local_APIC(void) ...@@ -1157,7 +1157,7 @@ void __cpuinit setup_local_APIC(void)
#ifdef CONFIG_X86_32 #ifdef CONFIG_X86_32
/* Pound the ESR really hard over the head with a big hammer - mbligh */ /* 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); apic_write(APIC_ESR, 0);
apic_write(APIC_ESR, 0); apic_write(APIC_ESR, 0);
......
...@@ -69,7 +69,7 @@ struct genapic apic_bigsmp = { ...@@ -69,7 +69,7 @@ struct genapic apic_bigsmp = {
.irq_dest_mode = 0, .irq_dest_mode = 0,
.target_cpus = bigsmp_target_cpus, .target_cpus = bigsmp_target_cpus,
.ESR_DISABLE = esr_disable, .ESR_DISABLE = 1,
.apic_destination_logical = APIC_DEST_LOGICAL, .apic_destination_logical = APIC_DEST_LOGICAL,
.check_apicid_used = check_apicid_used, .check_apicid_used = check_apicid_used,
.check_apicid_present = check_apicid_present, .check_apicid_present = check_apicid_present,
......
...@@ -36,7 +36,7 @@ struct genapic apic_default = { ...@@ -36,7 +36,7 @@ struct genapic apic_default = {
.irq_dest_mode = 1, .irq_dest_mode = 1,
.target_cpus = default_target_cpus, .target_cpus = default_target_cpus,
.ESR_DISABLE = esr_disable, .ESR_DISABLE = 0,
.apic_destination_logical = APIC_DEST_LOGICAL, .apic_destination_logical = APIC_DEST_LOGICAL,
.check_apicid_used = check_apicid_used, .check_apicid_used = check_apicid_used,
.check_apicid_present = check_apicid_present, .check_apicid_present = check_apicid_present,
......
...@@ -112,7 +112,7 @@ struct genapic apic_es7000 = { ...@@ -112,7 +112,7 @@ struct genapic apic_es7000 = {
.irq_dest_mode = 0, .irq_dest_mode = 0,
.target_cpus = es7000_target_cpus, .target_cpus = es7000_target_cpus,
.ESR_DISABLE = esr_disable, .ESR_DISABLE = 1,
.apic_destination_logical = APIC_DEST_LOGICAL, .apic_destination_logical = APIC_DEST_LOGICAL,
.check_apicid_used = check_apicid_used, .check_apicid_used = check_apicid_used,
.check_apicid_present = check_apicid_present, .check_apicid_present = check_apicid_present,
......
...@@ -56,7 +56,7 @@ struct genapic apic_numaq = { ...@@ -56,7 +56,7 @@ struct genapic apic_numaq = {
.irq_dest_mode = 0, .irq_dest_mode = 0,
.target_cpus = numaq_target_cpus, .target_cpus = numaq_target_cpus,
.ESR_DISABLE = esr_disable, .ESR_DISABLE = 1,
.apic_destination_logical = APIC_DEST_LOGICAL, .apic_destination_logical = APIC_DEST_LOGICAL,
.check_apicid_used = check_apicid_used, .check_apicid_used = check_apicid_used,
.check_apicid_present = check_apicid_present, .check_apicid_present = check_apicid_present,
......
...@@ -49,7 +49,7 @@ struct genapic apic_summit = { ...@@ -49,7 +49,7 @@ struct genapic apic_summit = {
.irq_dest_mode = 1, .irq_dest_mode = 1,
.target_cpus = summit_target_cpus, .target_cpus = summit_target_cpus,
.ESR_DISABLE = esr_disable, .ESR_DISABLE = 1,
.apic_destination_logical = APIC_DEST_LOGICAL, .apic_destination_logical = APIC_DEST_LOGICAL,
.check_apicid_used = check_apicid_used, .check_apicid_used = check_apicid_used,
.check_apicid_present = check_apicid_present, .check_apicid_present = check_apicid_present,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment