diff options
| author | Martin J. Bligh <mbligh@aracnet.com> | 2003-01-14 19:29:10 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2003-01-14 19:29:10 -0800 |
| commit | fbf7fcc5074bdc46f959e488bd56909412a5689f (patch) | |
| tree | 6f8d807c991549c9538f31ba7183d6c4d17c12d5 /include | |
| parent | d1ae0ede7e46bdc80a730110897c14424eab698c (diff) | |
[PATCH] Fix interrupt dest mode / delivery mode confusion
Patch from James Cleverdon & John Stultz
Currently the naming for the IO-APIC fields is very confused, we assign
dest_LowestPrio to delivery_mode, and INT_DELIVERY_MODE to dest_mode.
The values are correct, but the naming is wrong - this patch corrects
that confusion. It also moves the definitions of those settings into
subarch, where they belong (we have to use fixed delivery mode for Summit
due to what seems to be an Intel IO-APIC bug with P4 clustered mode).
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-i386/mach-bigsmp/mach_apic.h | 3 | ||||
| -rw-r--r-- | include/asm-i386/mach-default/mach_apic.h | 3 | ||||
| -rw-r--r-- | include/asm-i386/mach-numaq/mach_apic.h | 3 | ||||
| -rw-r--r-- | include/asm-i386/mach-summit/mach_apic.h | 3 | ||||
| -rw-r--r-- | include/asm-i386/smp.h | 6 |
5 files changed, 12 insertions, 6 deletions
diff --git a/include/asm-i386/mach-bigsmp/mach_apic.h b/include/asm-i386/mach-bigsmp/mach_apic.h index bee177a4f195..96d1658e920f 100644 --- a/include/asm-i386/mach-bigsmp/mach_apic.h +++ b/include/asm-i386/mach-bigsmp/mach_apic.h @@ -21,6 +21,9 @@ static inline int apic_id_registered(void) #define APIC_DFR_VALUE (APIC_DFR_CLUSTER) #define TARGET_CPUS ((cpu_online_map < 0xf)?cpu_online_map:0xf) +#define INT_DELIVERY_MODE dest_LowestPrio +#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */ + #define APIC_BROADCAST_ID (0x0f) #define check_apicid_used(bitmap, apicid) (0) diff --git a/include/asm-i386/mach-default/mach_apic.h b/include/asm-i386/mach-default/mach_apic.h index 9405531fb35b..8468b48c032b 100644 --- a/include/asm-i386/mach-default/mach_apic.h +++ b/include/asm-i386/mach-default/mach_apic.h @@ -12,6 +12,9 @@ #define no_balance_irq (0) #define esr_disable (0) +#define INT_DELIVERY_MODE dest_LowestPrio +#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */ + #define APIC_BROADCAST_ID 0x0F #define check_apicid_used(bitmap, apicid) (bitmap & (1 << apicid)) diff --git a/include/asm-i386/mach-numaq/mach_apic.h b/include/asm-i386/mach-numaq/mach_apic.h index 05c0fd19266d..41904831130a 100644 --- a/include/asm-i386/mach-numaq/mach_apic.h +++ b/include/asm-i386/mach-numaq/mach_apic.h @@ -8,6 +8,9 @@ #define no_balance_irq (1) #define esr_disable (1) +#define INT_DELIVERY_MODE dest_LowestPrio +#define INT_DEST_MODE 0 /* physical delivery on LOCAL quad */ + #define APIC_BROADCAST_ID 0x0F #define check_apicid_used(bitmap, apicid) ((bitmap) & (1 << (apicid))) diff --git a/include/asm-i386/mach-summit/mach_apic.h b/include/asm-i386/mach-summit/mach_apic.h index 78f6b26f0ead..4e5a76aa9e26 100644 --- a/include/asm-i386/mach-summit/mach_apic.h +++ b/include/asm-i386/mach-summit/mach_apic.h @@ -25,6 +25,9 @@ static inline unsigned long calculate_ldr(unsigned long old) #define APIC_DFR_VALUE (x86_summit ? APIC_DFR_CLUSTER : APIC_DFR_FLAT) #define TARGET_CPUS (x86_summit ? XAPIC_DEST_CPUS_MASK : cpu_online_map) +#define INT_DELIVERY_MODE dest_Fixed +#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */ + #define APIC_BROADCAST_ID (x86_summit ? 0xFF : 0x0F) #define check_apicid_used(bitmap, apicid) (0) diff --git a/include/asm-i386/smp.h b/include/asm-i386/smp.h index 85c61d5f9497..dcb0f64e31ba 100644 --- a/include/asm-i386/smp.h +++ b/include/asm-i386/smp.h @@ -22,12 +22,6 @@ #endif #endif -#ifdef CONFIG_X86_NUMAQ - #define INT_DELIVERY_MODE 0 /* physical delivery on LOCAL quad */ -#else - #define INT_DELIVERY_MODE 1 /* logical delivery broadcast to all procs */ -#endif - #define BAD_APICID 0xFFu #ifdef CONFIG_SMP #ifndef __ASSEMBLY__ |
