Skip to content

Commit

Permalink
x86, smp: remove mach_ipi.h
Browse files Browse the repository at this point in the history
Move mach_ipi.h definitions into genapic.h.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Ingo Molnar committed Jan 29, 2009
1 parent 9f4187f commit d53e2f2
Show file tree
Hide file tree
Showing 17 changed files with 68 additions and 96 deletions.
1 change: 1 addition & 0 deletions arch/x86/include/asm/genapic.h
Original file line number Diff line number Diff line change
Expand Up @@ -259,4 +259,5 @@ static inline physid_mask_t default_apicid_to_cpu_present(int phys_apicid)
}

#endif /* CONFIG_X86_LOCAL_APIC */

#endif /* _ASM_X86_GENAPIC_64_H */
61 changes: 59 additions & 2 deletions arch/x86/include/asm/ipi.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#ifndef _ASM_X86_IPI_H
#define _ASM_X86_IPI_H

#ifdef CONFIG_X86_LOCAL_APIC

/*
* Copyright 2004 James Cleverdon, IBM.
* Subject to the GNU Public License, v.2
Expand Down Expand Up @@ -56,8 +58,7 @@ static inline void __xapic_wait_icr_idle(void)
}

static inline void
__default_send_IPI_shortcut(unsigned int shortcut,
int vector, unsigned int dest)
__default_send_IPI_shortcut(unsigned int shortcut, int vector, unsigned int dest)
{
/*
* Subtle. In the case of the 'never do double writes' workaround
Expand Down Expand Up @@ -156,4 +157,60 @@ default_send_IPI_mask_allbutself(const struct cpumask *mask, int vector)
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 */
58 changes: 0 additions & 58 deletions arch/x86/include/asm/mach-default/mach_ipi.h

This file was deleted.

15 changes: 0 additions & 15 deletions arch/x86/include/asm/mach-generic/gpio.h

This file was deleted.

6 changes: 0 additions & 6 deletions arch/x86/include/asm/mach-generic/mach_ipi.h

This file was deleted.

4 changes: 0 additions & 4 deletions arch/x86/include/asm/mach-generic/mach_wakecpu.h

This file was deleted.

2 changes: 1 addition & 1 deletion arch/x86/kernel/apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
#include <asm/i8259.h>
#include <asm/smp.h>

#include <mach_ipi.h>
#include <asm/genapic.h>

/*
* Sanity check
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/crash.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
#include <asm/reboot.h>
#include <asm/virtext.h>

#include <mach_ipi.h>
#include <asm/genapic.h>


#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
Expand Down
1 change: 0 additions & 1 deletion arch/x86/kernel/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@
#include <asm/uv/uv_hub.h>
#include <asm/uv/uv_irq.h>

#include <mach_ipi.h>
#include <asm/genapic.h>

#define __apicdebuginit(type) static type __init
Expand Down
1 change: 0 additions & 1 deletion arch/x86/kernel/ipi.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@

#ifdef CONFIG_X86_32
#include <asm/genapic.h>
#include <mach_ipi.h>

/*
* the following functions deal with sending IPIs between CPUs.
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/kgdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
#include <asm/apicdef.h>
#include <asm/system.h>

#include <mach_ipi.h>
#include <asm/genapic.h>

/*
* Put the error code here just in case the user cares:
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/reboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
# include <asm/iommu.h>
#endif

#include <mach_ipi.h>
#include <asm/genapic.h>

/*
* Power off function, if any
Expand Down
1 change: 0 additions & 1 deletion arch/x86/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
#include <asm/tlbflush.h>
#include <asm/mmu_context.h>
#include <asm/proto.h>
#include <mach_ipi.h>
#include <asm/genapic.h>
/*
* Some notes on x86 processor bugs affecting SMP operation:
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/visws_quirks.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <asm/e820.h>
#include <asm/io.h>

#include <mach_ipi.h>
#include <asm/genapic.h>

#include <asm/genapic.h>

Expand Down
2 changes: 1 addition & 1 deletion arch/x86/mach-default/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include <asm/e820.h>
#include <asm/setup.h>

#include <mach_ipi.h>
#include <asm/genapic.h>

#ifdef CONFIG_HOTPLUG_CPU
#define DEFAULT_SEND_IPI (1)
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/mach-generic/default.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include <linux/smp.h>
#include <linux/init.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)
{
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/mm/tlb.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
DEFINE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate)
= { &init_mm, 0, };

#include <mach_ipi.h>
#include <asm/genapic.h>
/*
* Smarter SMP flushing macros.
* c/o Linus Torvalds.
Expand Down

0 comments on commit d53e2f2

Please sign in to comment.