take them out of the x86_64-only asm/mach_apic.h
Signed-off-by: Glauber Costa <[email protected]>
---
arch/x86/kernel/apic_64.c | 2 ++
arch/x86/kernel/crash.c | 4 ----
arch/x86/kernel/io_apic_64.c | 2 ++
arch/x86/kernel/smp.c | 6 +-----
arch/x86/kernel/tlb_64.c | 3 ++-
include/asm-x86/mach-default/mach_ipi.h | 17 +++++++++++++----
include/asm-x86/mach_apic.h | 3 ---
7 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index 5362cfd..206278f 100644
--- a/arch/x86/kernel/apic_64.c
+++ b/arch/x86/kernel/apic_64.c
@@ -41,6 +41,8 @@ #include <asm/proto.h>
#include <asm/timex.h>
#include <asm/apic.h>
+#include <mach_ipi.h>
+
int disable_apic_timer __cpuinitdata;
static int apic_calibrate_pmtmr __initdata;
int disable_apic;
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index 9a5fa0a..2251d0a 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -26,11 +26,7 @@ #include <asm/hpet.h>
#include <linux/kdebug.h>
#include <asm/smp.h>
-#ifdef CONFIG_X86_32
#include <mach_ipi.h>
-#else
-#include <asm/mach_apic.h>
-#endif
/* This keeps a track of which one is crashing cpu. */
static int crashing_cpu;
diff --git a/arch/x86/kernel/io_apic_64.c b/arch/x86/kernel/io_apic_64.c
index 1627c0d..7d5cdf3 100644
--- a/arch/x86/kernel/io_apic_64.c
+++ b/arch/x86/kernel/io_apic_64.c
@@ -50,6 +50,8 @@ #include <asm/nmi.h>
#include <asm/msidef.h>
#include <asm/hypertransport.h>
+#include <mach_ipi.h>
+
struct irq_cfg {
cpumask_t domain;
cpumask_t old_domain;
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index 16c52aa..8f75893 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -26,12 +26,8 @@ #include <asm/mtrr.h>
#include <asm/tlbflush.h>
#include <asm/mmu_context.h>
#include <asm/proto.h>
-#ifdef CONFIG_X86_32
-#include <mach_apic.h>
#include <mach_ipi.h>
-#else
-#include <asm/mach_apic.h>
-#endif
+#include <mach_apic.h>
/*
* Some notes on x86 processor bugs affecting SMP operation:
*
diff --git a/arch/x86/kernel/tlb_64.c b/arch/x86/kernel/tlb_64.c
index 615d848..1558e51 100644
--- a/arch/x86/kernel/tlb_64.c
+++ b/arch/x86/kernel/tlb_64.c
@@ -11,11 +11,12 @@ #include <linux/interrupt.h>
#include <asm/mtrr.h>
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
-#include <asm/mach_apic.h>
#include <asm/mmu_context.h>
#include <asm/proto.h>
#include <asm/apicdef.h>
#include <asm/idle.h>
+
+#include <mach_ipi.h>
/*
* Smarter SMP flushing macros.
* c/o Linus Torvalds.
diff --git a/include/asm-x86/mach-default/mach_ipi.h b/include/asm-x86/mach-default/mach_ipi.h
index 0dba244..f00467b 100644
--- a/include/asm-x86/mach-default/mach_ipi.h
+++ b/include/asm-x86/mach-default/mach_ipi.h
@@ -9,10 +9,7 @@ void __send_IPI_shortcut(unsigned int sh
extern int no_broadcast;
-static inline void send_IPI_mask(cpumask_t mask, int vector)
-{
- send_IPI_mask_bitmask(mask, vector);
-}
+void send_IPI_mask(cpumask_t mask, int vector);
static inline void __local_send_IPI_allbutself(int vector)
{
@@ -33,6 +30,17 @@ static inline void __local_send_IPI_all(
__send_IPI_shortcut(APIC_DEST_ALLINC, vector);
}
+#ifdef CONFIG_X86_64
+#include <asm/genapic.h>
+#define send_IPI_mask (genapic->send_IPI_mask)
+#define send_IPI_allbutself (genapic->send_IPI_allbutself)
+#define send_IPI_all (genapic->send_IPI_all)
+#else
+static inline void send_IPI_mask(cpumask_t mask, int vector);
+{
+ send_IPI_mask_bitmask(mask, vector);
+}
+
static inline void send_IPI_allbutself(int vector)
{
/*
@@ -50,5 +58,6 @@ static inline void send_IPI_all(int vect
{
__local_send_IPI_all(vector);
}
+#endif
#endif /* __ASM_MACH_IPI_H */
diff --git a/include/asm-x86/mach_apic.h b/include/asm-x86/mach_apic.h
index 7b7115a..1bc68c0 100644
--- a/include/asm-x86/mach_apic.h
+++ b/include/asm-x86/mach_apic.h
@@ -20,9 +20,6 @@ #define TARGET_CPUS (genapic->target_c
#define vector_allocation_domain (genapic->vector_allocation_domain)
#define apic_id_registered (genapic->apic_id_registered)
#define init_apic_ldr (genapic->init_apic_ldr)
-#define send_IPI_mask (genapic->send_IPI_mask)
-#define send_IPI_allbutself (genapic->send_IPI_allbutself)
-#define send_IPI_all (genapic->send_IPI_all)
#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
#define phys_pkg_id (genapic->phys_pkg_id)
--
1.4.2
take them out of the x86_64-specific asm/mach_apic.h
Signed-off-by: Glauber Costa <[email protected]>
---
arch/x86/kernel/apic_64.c | 2 -
arch/x86/kernel/io_apic_64.c | 2 -
arch/x86/kernel/setup_64.c | 2 -
include/asm-x86/mach-default/mach_apic.h | 80 ++++++++++++++++--------------
include/asm-x86/mach_apic.h | 26 ----------
5 files changed, 46 insertions(+), 66 deletions(-)
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index 206278f..7dd6250 100644
--- a/arch/x86/kernel/apic_64.c
+++ b/arch/x86/kernel/apic_64.c
@@ -34,7 +34,6 @@ #include <asm/mtrr.h>
#include <asm/mpspec.h>
#include <asm/hpet.h>
#include <asm/pgalloc.h>
-#include <asm/mach_apic.h>
#include <asm/nmi.h>
#include <asm/idle.h>
#include <asm/proto.h>
@@ -42,6 +41,7 @@ #include <asm/timex.h>
#include <asm/apic.h>
#include <mach_ipi.h>
+#include <mach_apic.h>
int disable_apic_timer __cpuinitdata;
static int apic_calibrate_pmtmr __initdata;
diff --git a/arch/x86/kernel/io_apic_64.c b/arch/x86/kernel/io_apic_64.c
index 7d5cdf3..6dd3362 100644
--- a/arch/x86/kernel/io_apic_64.c
+++ b/arch/x86/kernel/io_apic_64.c
@@ -43,7 +43,6 @@ #include <asm/io.h>
#include <asm/smp.h>
#include <asm/desc.h>
#include <asm/proto.h>
-#include <asm/mach_apic.h>
#include <asm/acpi.h>
#include <asm/dma.h>
#include <asm/nmi.h>
@@ -51,6 +50,7 @@ #include <asm/msidef.h>
#include <asm/hypertransport.h>
#include <mach_ipi.h>
+#include <mach_apic.h>
struct irq_cfg {
cpumask_t domain;
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 3f1dc97..08f9591 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -60,7 +60,6 @@ #include <asm/mpspec.h>
#include <asm/mmu_context.h>
#include <asm/proto.h>
#include <asm/setup.h>
-#include <asm/mach_apic.h>
#include <asm/numa.h>
#include <asm/sections.h>
#include <asm/dmi.h>
@@ -69,6 +68,7 @@ #include <asm/mce.h>
#include <asm/ds.h>
#include <asm/topology.h>
+#include <mach_apic.h>
#ifdef CONFIG_PARAVIRT
#include <asm/paravirt.h>
#else
diff --git a/include/asm-x86/mach-default/mach_apic.h b/include/asm-x86/mach-default/mach_apic.h
index 13900e8..3f49a3a 100644
--- a/include/asm-x86/mach-default/mach_apic.h
+++ b/include/asm-x86/mach-default/mach_apic.h
@@ -14,24 +14,25 @@ #else
return cpumask_of_cpu(0);
#endif
}
-#define TARGET_CPUS (target_cpus())
#define NO_BALANCE_IRQ (0)
#define esr_disable (0)
+#ifdef CONFIG_X86_64
+#include <asm/genapic.h>
+#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
+#define INT_DEST_MODE (genapic->int_dest_mode)
+#define TARGET_CPUS (genapic->target_cpus())
+#define apic_id_registered (genapic->apic_id_registered)
+#define init_apic_ldr (genapic->init_apic_ldr)
+#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
+#define phys_pkg_id (genapic->phys_pkg_id)
+#define vector_allocation_domain (genapic->vector_allocation_domain)
+extern void setup_apic_routing(void);
+#else
#define INT_DELIVERY_MODE dest_LowestPrio
#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */
-
-static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
-{
- return physid_isset(apicid, bitmap);
-}
-
-static inline unsigned long check_apicid_present(int bit)
-{
- return physid_isset(bit, phys_cpu_present_map);
-}
-
+#define TARGET_CPUS (target_cpus())
/*
* Set up the logical destination ID.
*
@@ -49,32 +50,52 @@ static inline void init_apic_ldr(void)
apic_write_around(APIC_LDR, val);
}
-static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
+static inline int apic_id_registered(void)
{
- return phys_map;
+ return physid_isset(GET_APIC_ID(apic_read(APIC_ID)), phys_cpu_present_map);
+}
+
+static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
+{
+ return cpus_addr(cpumask)[0];
+}
+
+static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
+{
+ return cpuid_apic >> index_msb;
}
-#ifdef CONFIG_X86_64
-extern void setup_apic_routing(void);
-#else
static inline void setup_apic_routing(void)
{
printk("Enabling APIC mode: %s. Using %d I/O APICs\n",
"Flat", nr_ioapics);
}
-#endif
-static inline int multi_timer_check(int apic, int irq)
+static inline int apicid_to_node(int logical_apicid)
{
return 0;
}
+#endif
-#ifdef CONFIG_X86_32
-static inline int apicid_to_node(int logical_apicid)
+static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
+{
+ return physid_isset(apicid, bitmap);
+}
+
+static inline unsigned long check_apicid_present(int bit)
+{
+ return physid_isset(bit, phys_cpu_present_map);
+}
+
+static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
+{
+ return phys_map;
+}
+
+static inline int multi_timer_check(int apic, int irq)
{
return 0;
}
-#endif
/* Mapping from cpu number to logical apicid */
static inline int cpu_to_logical_apicid(int cpu)
@@ -109,23 +130,8 @@ static inline int check_phys_apicid_pres
return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map);
}
-static inline int apic_id_registered(void)
-{
- return physid_isset(GET_APIC_ID(apic_read(APIC_ID)), phys_cpu_present_map);
-}
-
-static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
-{
- return cpus_addr(cpumask)[0];
-}
-
static inline void enable_apic_mode(void)
{
}
-static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
-{
- return cpuid_apic >> index_msb;
-}
-
#endif /* __ASM_MACH_APIC_H */
diff --git a/include/asm-x86/mach_apic.h b/include/asm-x86/mach_apic.h
deleted file mode 100644
index 1bc68c0..0000000
--- a/include/asm-x86/mach_apic.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_MACH_APIC_H
-#define __ASM_MACH_APIC_H
-
-/*
- * Copyright 2004 James Cleverdon, IBM.
- * Subject to the GNU Public License, v.2
- *
- * Generic APIC sub-arch defines.
- *
- * Hacked for x86-64 by James Cleverdon from i386 architecture code by
- * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
- * James Cleverdon.
- */
-
-#include <asm/genapic.h>
-
-#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
-#define INT_DEST_MODE (genapic->int_dest_mode)
-#define TARGET_CPUS (genapic->target_cpus())
-#define vector_allocation_domain (genapic->vector_allocation_domain)
-#define apic_id_registered (genapic->apic_id_registered)
-#define init_apic_ldr (genapic->init_apic_ldr)
-#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
-#define phys_pkg_id (genapic->phys_pkg_id)
-
-#endif /* __ASM_MACH_APIC_H */
--
1.4.2
On Mon, Mar 24, 2008 at 12:52 PM, Glauber Costa <[email protected]> wrote:
> take them out of the x86_64-specific asm/mach_apic.h
>
> Signed-off-by: Glauber Costa <[email protected]>
> ---
> arch/x86/kernel/apic_64.c | 2 -
> arch/x86/kernel/io_apic_64.c | 2 -
> arch/x86/kernel/setup_64.c | 2 -
> include/asm-x86/mach-default/mach_apic.h | 80 ++++++++++++++++--------------
> include/asm-x86/mach_apic.h | 26 ----------
> 5 files changed, 46 insertions(+), 66 deletions(-)
>
> diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
> index 206278f..7dd6250 100644
> --- a/arch/x86/kernel/apic_64.c
> +++ b/arch/x86/kernel/apic_64.c
> @@ -34,7 +34,6 @@ #include <asm/mtrr.h>
> #include <asm/mpspec.h>
> #include <asm/hpet.h>
> #include <asm/pgalloc.h>
> -#include <asm/mach_apic.h>
> #include <asm/nmi.h>
> #include <asm/idle.h>
> #include <asm/proto.h>
> @@ -42,6 +41,7 @@ #include <asm/timex.h>
> #include <asm/apic.h>
>
> #include <mach_ipi.h>
> +#include <mach_apic.h>
good. include/asm-x86/mach_apic.h is gone.
YH
* Glauber Costa <[email protected]> wrote:
> take them out of the x86_64-only asm/mach_apic.h
thanks, applied.
Ingo
* Glauber Costa <[email protected]> wrote:
> take them out of the x86_64-specific asm/mach_apic.h
thanks, applied.
Ingo
* Glauber Costa <[email protected]> wrote:
> +++ b/include/asm-x86/mach-default/mach_ipi.h
> -static inline void send_IPI_mask(cpumask_t mask, int vector)
> -{
> - send_IPI_mask_bitmask(mask, vector);
> -}
> +void send_IPI_mask(cpumask_t mask, int vector);
> +#else
> +static inline void send_IPI_mask(cpumask_t mask, int vector);
> +{
> + send_IPI_mask_bitmask(mask, vector);
> +}
this trivially doesnt build on 32-bit, for multiple reasons...
Ingo
take them out of the x86_64-specific asm/mach_apic.h
Signed-off-by: Glauber Costa <[email protected]>
---
arch/x86/kernel/apic_64.c | 2 +-
arch/x86/kernel/cpu/amd.c | 2 +-
arch/x86/kernel/io_apic_64.c | 2 +-
arch/x86/kernel/setup_64.c | 2 +-
include/asm-x86/mach-default/mach_apic.h | 80 ++++++++++++++++--------------
include/asm-x86/mach_apic.h | 26 ----------
6 files changed, 47 insertions(+), 67 deletions(-)
delete mode 100644 include/asm-x86/mach_apic.h
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index 206278f..7dd6250 100644
--- a/arch/x86/kernel/apic_64.c
+++ b/arch/x86/kernel/apic_64.c
@@ -34,7 +34,6 @@
#include <asm/mpspec.h>
#include <asm/hpet.h>
#include <asm/pgalloc.h>
-#include <asm/mach_apic.h>
#include <asm/nmi.h>
#include <asm/idle.h>
#include <asm/proto.h>
@@ -42,6 +41,7 @@
#include <asm/apic.h>
#include <mach_ipi.h>
+#include <mach_apic.h>
int disable_apic_timer __cpuinitdata;
static int apic_calibrate_pmtmr __initdata;
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 33d38f8..0173065 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -4,8 +4,8 @@
#include <asm/io.h>
#include <asm/processor.h>
#include <asm/apic.h>
-#include <asm/mach_apic.h>
+#include <mach_apic.h>
#include "cpu.h"
/*
diff --git a/arch/x86/kernel/io_apic_64.c b/arch/x86/kernel/io_apic_64.c
index 7d5cdf3..6dd3362 100644
--- a/arch/x86/kernel/io_apic_64.c
+++ b/arch/x86/kernel/io_apic_64.c
@@ -43,7 +43,6 @@
#include <asm/smp.h>
#include <asm/desc.h>
#include <asm/proto.h>
-#include <asm/mach_apic.h>
#include <asm/acpi.h>
#include <asm/dma.h>
#include <asm/nmi.h>
@@ -51,6 +50,7 @@
#include <asm/hypertransport.h>
#include <mach_ipi.h>
+#include <mach_apic.h>
struct irq_cfg {
cpumask_t domain;
diff --git a/arch/x86/kernel/setup_64.c b/arch/x86/kernel/setup_64.c
index 3f1dc97..08f9591 100644
--- a/arch/x86/kernel/setup_64.c
+++ b/arch/x86/kernel/setup_64.c
@@ -60,7 +60,6 @@
#include <asm/mmu_context.h>
#include <asm/proto.h>
#include <asm/setup.h>
-#include <asm/mach_apic.h>
#include <asm/numa.h>
#include <asm/sections.h>
#include <asm/dmi.h>
@@ -69,6 +68,7 @@
#include <asm/ds.h>
#include <asm/topology.h>
+#include <mach_apic.h>
#ifdef CONFIG_PARAVIRT
#include <asm/paravirt.h>
#else
diff --git a/include/asm-x86/mach-default/mach_apic.h b/include/asm-x86/mach-default/mach_apic.h
index 13900e8..3f49a3a 100644
--- a/include/asm-x86/mach-default/mach_apic.h
+++ b/include/asm-x86/mach-default/mach_apic.h
@@ -14,24 +14,25 @@ static inline cpumask_t target_cpus(void)
return cpumask_of_cpu(0);
#endif
}
-#define TARGET_CPUS (target_cpus())
#define NO_BALANCE_IRQ (0)
#define esr_disable (0)
+#ifdef CONFIG_X86_64
+#include <asm/genapic.h>
+#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
+#define INT_DEST_MODE (genapic->int_dest_mode)
+#define TARGET_CPUS (genapic->target_cpus())
+#define apic_id_registered (genapic->apic_id_registered)
+#define init_apic_ldr (genapic->init_apic_ldr)
+#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
+#define phys_pkg_id (genapic->phys_pkg_id)
+#define vector_allocation_domain (genapic->vector_allocation_domain)
+extern void setup_apic_routing(void);
+#else
#define INT_DELIVERY_MODE dest_LowestPrio
#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */
-
-static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
-{
- return physid_isset(apicid, bitmap);
-}
-
-static inline unsigned long check_apicid_present(int bit)
-{
- return physid_isset(bit, phys_cpu_present_map);
-}
-
+#define TARGET_CPUS (target_cpus())
/*
* Set up the logical destination ID.
*
@@ -49,32 +50,52 @@ static inline void init_apic_ldr(void)
apic_write_around(APIC_LDR, val);
}
-static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
+static inline int apic_id_registered(void)
{
- return phys_map;
+ return physid_isset(GET_APIC_ID(apic_read(APIC_ID)), phys_cpu_present_map);
+}
+
+static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
+{
+ return cpus_addr(cpumask)[0];
+}
+
+static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
+{
+ return cpuid_apic >> index_msb;
}
-#ifdef CONFIG_X86_64
-extern void setup_apic_routing(void);
-#else
static inline void setup_apic_routing(void)
{
printk("Enabling APIC mode: %s. Using %d I/O APICs\n",
"Flat", nr_ioapics);
}
-#endif
-static inline int multi_timer_check(int apic, int irq)
+static inline int apicid_to_node(int logical_apicid)
{
return 0;
}
+#endif
-#ifdef CONFIG_X86_32
-static inline int apicid_to_node(int logical_apicid)
+static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
+{
+ return physid_isset(apicid, bitmap);
+}
+
+static inline unsigned long check_apicid_present(int bit)
+{
+ return physid_isset(bit, phys_cpu_present_map);
+}
+
+static inline physid_mask_t ioapic_phys_id_map(physid_mask_t phys_map)
+{
+ return phys_map;
+}
+
+static inline int multi_timer_check(int apic, int irq)
{
return 0;
}
-#endif
/* Mapping from cpu number to logical apicid */
static inline int cpu_to_logical_apicid(int cpu)
@@ -109,23 +130,8 @@ static inline int check_phys_apicid_present(int boot_cpu_physical_apicid)
return physid_isset(boot_cpu_physical_apicid, phys_cpu_present_map);
}
-static inline int apic_id_registered(void)
-{
- return physid_isset(GET_APIC_ID(apic_read(APIC_ID)), phys_cpu_present_map);
-}
-
-static inline unsigned int cpu_mask_to_apicid(cpumask_t cpumask)
-{
- return cpus_addr(cpumask)[0];
-}
-
static inline void enable_apic_mode(void)
{
}
-static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
-{
- return cpuid_apic >> index_msb;
-}
-
#endif /* __ASM_MACH_APIC_H */
diff --git a/include/asm-x86/mach_apic.h b/include/asm-x86/mach_apic.h
deleted file mode 100644
index 1bc68c0..0000000
--- a/include/asm-x86/mach_apic.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_MACH_APIC_H
-#define __ASM_MACH_APIC_H
-
-/*
- * Copyright 2004 James Cleverdon, IBM.
- * Subject to the GNU Public License, v.2
- *
- * Generic APIC sub-arch defines.
- *
- * Hacked for x86-64 by James Cleverdon from i386 architecture code by
- * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
- * James Cleverdon.
- */
-
-#include <asm/genapic.h>
-
-#define INT_DELIVERY_MODE (genapic->int_delivery_mode)
-#define INT_DEST_MODE (genapic->int_dest_mode)
-#define TARGET_CPUS (genapic->target_cpus())
-#define vector_allocation_domain (genapic->vector_allocation_domain)
-#define apic_id_registered (genapic->apic_id_registered)
-#define init_apic_ldr (genapic->init_apic_ldr)
-#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
-#define phys_pkg_id (genapic->phys_pkg_id)
-
-#endif /* __ASM_MACH_APIC_H */
--
1.5.0.6
yeah, the last patch sent was totally brown paper bag. I sent a previous
version from the wrong machine, sorry.
ingo, the new testing also unveiled a new catch, so I'm resending _both_ patches.
please ignore both of them from the last run, and apply these instead
take them out of the x86_64-only asm/mach_apic.h
Signed-off-by: Glauber Costa <[email protected]>
---
arch/x86/kernel/apic_64.c | 2 ++
arch/x86/kernel/crash.c | 4 ----
arch/x86/kernel/io_apic_64.c | 2 ++
arch/x86/kernel/kgdb.c | 6 +-----
arch/x86/kernel/smp.c | 6 +-----
arch/x86/kernel/tlb_64.c | 3 ++-
include/asm-x86/mach-default/mach_ipi.h | 10 ++++++++++
include/asm-x86/mach_apic.h | 3 ---
8 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
index 5362cfd..206278f 100644
--- a/arch/x86/kernel/apic_64.c
+++ b/arch/x86/kernel/apic_64.c
@@ -41,6 +41,8 @@
#include <asm/timex.h>
#include <asm/apic.h>
+#include <mach_ipi.h>
+
int disable_apic_timer __cpuinitdata;
static int apic_calibrate_pmtmr __initdata;
int disable_apic;
diff --git a/arch/x86/kernel/crash.c b/arch/x86/kernel/crash.c
index 9a5fa0a..2251d0a 100644
--- a/arch/x86/kernel/crash.c
+++ b/arch/x86/kernel/crash.c
@@ -26,11 +26,7 @@
#include <linux/kdebug.h>
#include <asm/smp.h>
-#ifdef CONFIG_X86_32
#include <mach_ipi.h>
-#else
-#include <asm/mach_apic.h>
-#endif
/* This keeps a track of which one is crashing cpu. */
static int crashing_cpu;
diff --git a/arch/x86/kernel/io_apic_64.c b/arch/x86/kernel/io_apic_64.c
index 1627c0d..7d5cdf3 100644
--- a/arch/x86/kernel/io_apic_64.c
+++ b/arch/x86/kernel/io_apic_64.c
@@ -50,6 +50,8 @@
#include <asm/msidef.h>
#include <asm/hypertransport.h>
+#include <mach_ipi.h>
+
struct irq_cfg {
cpumask_t domain;
cpumask_t old_domain;
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index 8c7e555..0acc610 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -46,11 +46,7 @@
#include <asm/apicdef.h>
#include <asm/system.h>
-#ifdef CONFIG_X86_32
-# include <mach_ipi.h>
-#else
-# include <asm/mach_apic.h>
-#endif
+#include <mach_ipi.h>
/*
* Put the error code here just in case the user cares:
diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
index 16c52aa..8f75893 100644
--- a/arch/x86/kernel/smp.c
+++ b/arch/x86/kernel/smp.c
@@ -26,12 +26,8 @@
#include <asm/tlbflush.h>
#include <asm/mmu_context.h>
#include <asm/proto.h>
-#ifdef CONFIG_X86_32
-#include <mach_apic.h>
#include <mach_ipi.h>
-#else
-#include <asm/mach_apic.h>
-#endif
+#include <mach_apic.h>
/*
* Some notes on x86 processor bugs affecting SMP operation:
*
diff --git a/arch/x86/kernel/tlb_64.c b/arch/x86/kernel/tlb_64.c
index 615d848..1558e51 100644
--- a/arch/x86/kernel/tlb_64.c
+++ b/arch/x86/kernel/tlb_64.c
@@ -11,11 +11,12 @@
#include <asm/mtrr.h>
#include <asm/pgalloc.h>
#include <asm/tlbflush.h>
-#include <asm/mach_apic.h>
#include <asm/mmu_context.h>
#include <asm/proto.h>
#include <asm/apicdef.h>
#include <asm/idle.h>
+
+#include <mach_ipi.h>
/*
* Smarter SMP flushing macros.
* c/o Linus Torvalds.
diff --git a/include/asm-x86/mach-default/mach_ipi.h b/include/asm-x86/mach-default/mach_ipi.h
index 0dba244..be32336 100644
--- a/include/asm-x86/mach-default/mach_ipi.h
+++ b/include/asm-x86/mach-default/mach_ipi.h
@@ -9,10 +9,15 @@ void __send_IPI_shortcut(unsigned int shortcut, int vector);
extern int no_broadcast;
+#ifdef CONFIG_X86_64
+#include <asm/genapic.h>
+#define send_IPI_mask (genapic->send_IPI_mask)
+#else
static inline void send_IPI_mask(cpumask_t mask, int vector)
{
send_IPI_mask_bitmask(mask, vector);
}
+#endif
static inline void __local_send_IPI_allbutself(int vector)
{
@@ -33,6 +38,10 @@ static inline void __local_send_IPI_all(int vector)
__send_IPI_shortcut(APIC_DEST_ALLINC, vector);
}
+#ifdef CONFIG_X86_64
+#define send_IPI_allbutself (genapic->send_IPI_allbutself)
+#define send_IPI_all (genapic->send_IPI_all)
+#else
static inline void send_IPI_allbutself(int vector)
{
/*
@@ -50,5 +59,6 @@ static inline void send_IPI_all(int vector)
{
__local_send_IPI_all(vector);
}
+#endif
#endif /* __ASM_MACH_IPI_H */
diff --git a/include/asm-x86/mach_apic.h b/include/asm-x86/mach_apic.h
index 7b7115a..1bc68c0 100644
--- a/include/asm-x86/mach_apic.h
+++ b/include/asm-x86/mach_apic.h
@@ -20,9 +20,6 @@
#define vector_allocation_domain (genapic->vector_allocation_domain)
#define apic_id_registered (genapic->apic_id_registered)
#define init_apic_ldr (genapic->init_apic_ldr)
-#define send_IPI_mask (genapic->send_IPI_mask)
-#define send_IPI_allbutself (genapic->send_IPI_allbutself)
-#define send_IPI_all (genapic->send_IPI_all)
#define cpu_mask_to_apicid (genapic->cpu_mask_to_apicid)
#define phys_pkg_id (genapic->phys_pkg_id)
--
1.5.0.6
* Glauber Costa <[email protected]> wrote:
> yeah, the last patch sent was totally brown paper bag. I sent a
> previous version from the wrong machine, sorry.
>
> ingo, the new testing also unveiled a new catch, so I'm resending
> _both_ patches. please ignore both of them from the last run, and
> apply these instead
thanks, applied.
Ingo
* Glauber Costa <[email protected]> wrote:
> take them out of the x86_64-specific asm/mach_apic.h
this broke the 32-bit build:
In file included from arch/x86/kernel/cpu/amd.c:8:
include/asm-x86/mach-default/mach_apic.h: In function 'init_apic_ldr':
include/asm-x86/mach-default/mach_apic.h:47: error: implicit declaration of function 'apic_write_around'
[...]
.config attached.
Ingo
Ingo Molnar wrote:
> * Glauber Costa <[email protected]> wrote:
>
>> take them out of the x86_64-specific asm/mach_apic.h
>
> this broke the 32-bit build:
>
> In file included from arch/x86/kernel/cpu/amd.c:8:
> include/asm-x86/mach-default/mach_apic.h: In function 'init_apic_ldr':
> include/asm-x86/mach-default/mach_apic.h:47: error: implicit declaration of function 'apic_write_around'
> [...]
>
> .config attached.
>
> Ingo
>
Problem is that local apic is not always present.
I'm sending a replacement.
there's another build error i found:
arch/x86/kernel/setup.c: In function 'setup_per_cpu_areas':
arch/x86/kernel/setup.c:87: error: expected ',' or ';' before '__attribute__'
config attached. This is with and without your second patch. (i.e.
independent problem, introduced by the 1/2 patch)
Ingo
* Ingo Molnar <[email protected]> wrote:
> there's another build error i found:
>
> arch/x86/kernel/setup.c: In function 'setup_per_cpu_areas':
> arch/x86/kernel/setup.c:87: error: expected ',' or ';' before '__attribute__'
>
> config attached. This is with and without your second patch. (i.e.
> independent problem, introduced by the 1/2 patch)
sorry - this is not your build bug :-)
Ingo
On Wed, Mar 26, 2008 at 1:49 AM, Ingo Molnar <[email protected]> wrote:
>
>
> * Ingo Molnar <[email protected]> wrote:
>
> > there's another build error i found:
> >
> > arch/x86/kernel/setup.c: In function 'setup_per_cpu_areas':
> > arch/x86/kernel/setup.c:87: error: expected ',' or ';' before '__attribute__'
> >
> > config attached. This is with and without your second patch. (i.e.
> > independent problem, introduced by the 1/2 patch)
>
> sorry - this is not your build bug :-)
>
Heh. My reaction when I saw it was "Oh no, I can't believe it!"
--
Glauber Costa.
"Free as in Freedom"
http://glommer.net
"The less confident you are, the more serious you have to act."