Commit d53e2f28 authored by Ingo Molnar's avatar Ingo Molnar

x86, smp: remove mach_ipi.h

Move mach_ipi.h definitions into genapic.h.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 9f4187f0
...@@ -259,4 +259,5 @@ static inline physid_mask_t default_apicid_to_cpu_present(int phys_apicid) ...@@ -259,4 +259,5 @@ static inline physid_mask_t default_apicid_to_cpu_present(int phys_apicid)
} }
#endif /* CONFIG_X86_LOCAL_APIC */ #endif /* CONFIG_X86_LOCAL_APIC */
#endif /* _ASM_X86_GENAPIC_64_H */ #endif /* _ASM_X86_GENAPIC_64_H */
#ifndef _ASM_X86_IPI_H #ifndef _ASM_X86_IPI_H
#define _ASM_X86_IPI_H #define _ASM_X86_IPI_H
#ifdef CONFIG_X86_LOCAL_APIC
/* /*
* Copyright 2004 James Cleverdon, IBM. * Copyright 2004 James Cleverdon, IBM.
* Subject to the GNU Public License, v.2 * Subject to the GNU Public License, v.2
...@@ -56,8 +58,7 @@ static inline void __xapic_wait_icr_idle(void) ...@@ -56,8 +58,7 @@ static inline void __xapic_wait_icr_idle(void)
} }
static inline void static inline void
__default_send_IPI_shortcut(unsigned int shortcut, __default_send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest)
int vector, unsigned int dest)
{ {
/* /*
* Subtle. In the case of the 'never do double writes' workaround * Subtle. In the case of the 'never do double writes' workaround
...@@ -156,4 +157,60 @@ default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector) ...@@ -156,4 +157,60 @@ default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
local_irq_restore(flags); local_irq_restore(flags);
} }
/* Avoid include hell */
#define NMI_VECTOR 0x02
void default_send_IPI_mask_bitmask(const struct cpumask *mask, int vector);
void default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
extern int no_broadcast;
#ifdef CONFIG_X86_64
#include <asm/genapic.h>
#else
static inline void default_send_IPI_mask(const struct cpumask *mask, int vector)
{
default_send_IPI_mask_bitmask(mask, vector);
}
void default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
#endif
static inline void __default_local_send_IPI_allbutself(int vector)
{
if (no_broadcast || vector == NMI_VECTOR)
apic->send_IPI_mask_allbutself(cpu_online_mask, vector);
else
__default_send_IPI_shortcut(APIC_DEST_ALLBUT, vector, apic->dest_logical);
}
static inline void __default_local_send_IPI_all(int vector)
{
if (no_broadcast || vector == NMI_VECTOR)
apic->send_IPI_mask(cpu_online_mask, vector);
else
__default_send_IPI_shortcut(APIC_DEST_ALLINC, vector, apic->dest_logical);
}
#ifdef CONFIG_X86_32
static inline void default_send_IPI_allbutself(int vector)
{
/*
* if there are no other CPUs in the system then we get an APIC send
* error if we try to broadcast, thus avoid sending IPIs in this case.
*/
if (!(num_online_cpus() > 1))
return;
__default_local_send_IPI_allbutself(vector);
}
static inline void default_send_IPI_all(int vector)
{
__default_local_send_IPI_all(vector);
}
#endif
#endif
#endif /* _ASM_X86_IPI_H */ #endif /* _ASM_X86_IPI_H */
#ifndef _ASM_X86_MACH_DEFAULT_MACH_IPI_H
#define _ASM_X86_MACH_DEFAULT_MACH_IPI_H
/* Avoid include hell */
#define NMI_VECTOR 0x02
void default_send_IPI_mask_bitmask(const struct cpumask *mask, int vector);
void default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
void __default_send_IPI_shortcut(unsigned int shortcut, int vector);
extern int no_broadcast;
#ifdef CONFIG_X86_64
#include <asm/genapic.h>
#else
static inline void default_send_IPI_mask(const struct cpumask *mask, int vector)
{
default_send_IPI_mask_bitmask(mask, vector);
}
void default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector);
#endif
static inline void __default_local_send_IPI_allbutself(int vector)
{
if (no_broadcast || vector == NMI_VECTOR)
apic->send_IPI_mask_allbutself(cpu_online_mask, vector);
else
__default_send_IPI_shortcut(APIC_DEST_ALLBUT, vector);
}
static inline void __default_local_send_IPI_all(int vector)
{
if (no_broadcast || vector == NMI_VECTOR)
apic->send_IPI_mask(cpu_online_mask, vector);
else
__default_send_IPI_shortcut(APIC_DEST_ALLINC, vector);
}
#ifdef CONFIG_X86_32
static inline void default_send_IPI_allbutself(int vector)
{
/*
* if there are no other CPUs in the system then we get an APIC send
* error if we try to broadcast, thus avoid sending IPIs in this case.
*/
if (!(num_online_cpus() > 1))
return;
__default_local_send_IPI_allbutself(vector);
}
static inline void default_send_IPI_all(int vector)
{
__default_local_send_IPI_all(vector);
}
#endif
#endif /* _ASM_X86_MACH_DEFAULT_MACH_IPI_H */
#ifndef _ASM_X86_MACH_GENERIC_GPIO_H
#define _ASM_X86_MACH_GENERIC_GPIO_H
int gpio_request(unsigned gpio, const char *label);
void gpio_free(unsigned gpio);
int gpio_direction_input(unsigned gpio);
int gpio_direction_output(unsigned gpio, int value);
int gpio_get_value(unsigned gpio);
void gpio_set_value(unsigned gpio, int value);
int gpio_to_irq(unsigned gpio);
int irq_to_gpio(unsigned irq);
#include <asm-generic/gpio.h> /* cansleep wrappers */
#endif /* _ASM_X86_MACH_GENERIC_GPIO_H */
#ifndef _ASM_X86_MACH_GENERIC_MACH_IPI_H
#define _ASM_X86_MACH_GENERIC_MACH_IPI_H
#include <asm/genapic.h>
#endif /* _ASM_X86_MACH_GENERIC_MACH_IPI_H */
#ifndef _ASM_X86_MACH_GENERIC_MACH_WAKECPU_H
#define _ASM_X86_MACH_GENERIC_MACH_WAKECPU_H
#endif /* _ASM_X86_MACH_GENERIC_MACH_APIC_H */
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
#include <asm/i8259.h> #include <asm/i8259.h>
#include <asm/smp.h> #include <asm/smp.h>
#include <mach_ipi.h> #include <asm/genapic.h>
/* /*
* Sanity check * Sanity check
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include <asm/reboot.h> #include <asm/reboot.h>
#include <asm/virtext.h> #include <asm/virtext.h>
#include <mach_ipi.h> #include <asm/genapic.h>
#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC) #if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
......
...@@ -62,7 +62,6 @@ ...@@ -62,7 +62,6 @@
#include <asm/uv/uv_hub.h> #include <asm/uv/uv_hub.h>
#include <asm/uv/uv_irq.h> #include <asm/uv/uv_irq.h>
#include <mach_ipi.h>
#include <asm/genapic.h> #include <asm/genapic.h>
#define __apicdebuginit(type) static type __init #define __apicdebuginit(type) static type __init
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
#ifdef CONFIG_X86_32 #ifdef CONFIG_X86_32
#include <asm/genapic.h> #include <asm/genapic.h>
#include <mach_ipi.h>
/* /*
* the following functions deal with sending IPIs between CPUs. * the following functions deal with sending IPIs between CPUs.
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
#include <asm/apicdef.h> #include <asm/apicdef.h>
#include <asm/system.h> #include <asm/system.h>
#include <mach_ipi.h> #include <asm/genapic.h>
/* /*
* Put the error code here just in case the user cares: * Put the error code here just in case the user cares:
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
# include <asm/iommu.h> # include <asm/iommu.h>
#endif #endif
#include <mach_ipi.h> #include <asm/genapic.h>
/* /*
* Power off function, if any * Power off function, if any
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
#include <asm/mmu_context.h> #include <asm/mmu_context.h>
#include <asm/proto.h> #include <asm/proto.h>
#include <mach_ipi.h>
#include <asm/genapic.h> #include <asm/genapic.h>
/* /*
* Some notes on x86 processor bugs affecting SMP operation: * Some notes on x86 processor bugs affecting SMP operation:
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#include <asm/e820.h> #include <asm/e820.h>
#include <asm/io.h> #include <asm/io.h>
#include <mach_ipi.h> #include <asm/genapic.h>
#include <asm/genapic.h> #include <asm/genapic.h>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include <asm/e820.h> #include <asm/e820.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <mach_ipi.h> #include <asm/genapic.h>
#ifdef CONFIG_HOTPLUG_CPU #ifdef CONFIG_HOTPLUG_CPU
#define DEFAULT_SEND_IPI (1) #define DEFAULT_SEND_IPI (1)
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/genapic.h> #include <asm/genapic.h>
#include <asm/mach-default/mach_ipi.h> #include <asm/ipi.h>
static void default_vector_allocation_domain(int cpu, struct cpumask *retmask) static void default_vector_allocation_domain(int cpu, struct cpumask *retmask)
{ {
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate) DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate)
= { &init_mm, 0, }; = { &init_mm, 0, };
#include <mach_ipi.h> #include <asm/genapic.h>
/* /*
* Smarter SMP flushing macros. * Smarter SMP flushing macros.
* c/o Linus Torvalds. * c/o Linus Torvalds.
......
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