Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 137006
b: refs/heads/master
c: 1f5bcab
h: refs/heads/master
v: v3
  • Loading branch information
Ingo Molnar committed Feb 26, 2009
1 parent 4d65cc0 commit 0a5ea9d
Show file tree
Hide file tree
Showing 12 changed files with 13 additions and 24 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0917c01f8e793f57a53cf886533d4c75c67f6e89
refs/heads/master: 1f5bcabf1b997d6b76a09114b5a79423495a1263
9 changes: 1 addition & 8 deletions trunk/arch/x86/include/asm/apic.h
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ struct apic {
void (*send_IPI_self)(int vector);

/* wakeup_secondary_cpu */
int (*wakeup_cpu)(int apicid, unsigned long start_eip);
int (*wakeup_secondary_cpu)(int apicid, unsigned long start_eip);

int trampoline_phys_low;
int trampoline_phys_high;
Expand Down Expand Up @@ -344,13 +344,6 @@ extern struct apic *apic;
#ifdef CONFIG_SMP
extern atomic_t init_deasserted;
extern int wakeup_secondary_cpu_via_nmi(int apicid, unsigned long start_eip);
extern int wakeup_secondary_cpu_via_init(int apicid, unsigned long start_eip);
#else
static inline int
wakeup_secondary_cpu_via_init(int apicid, unsigned long start_eip)
{
return 0;
}
#endif

static inline u32 apic_read(u32 reg)
Expand Down
2 changes: 0 additions & 2 deletions trunk/arch/x86/kernel/apic/apic_flat_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,6 @@ struct apic apic_flat = {
.send_IPI_all = flat_send_IPI_all,
.send_IPI_self = apic_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_init,
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL,
Expand Down Expand Up @@ -373,7 +372,6 @@ struct apic apic_physflat = {
.send_IPI_all = physflat_send_IPI_all,
.send_IPI_self = apic_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_init,
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL,
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/x86/kernel/apic/bigsmp_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,6 @@ struct apic apic_bigsmp = {
.send_IPI_all = bigsmp_send_IPI_all,
.send_IPI_self = default_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_init,
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,

Expand Down
4 changes: 1 addition & 3 deletions trunk/arch/x86/kernel/apic/es7000_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -741,7 +741,7 @@ struct apic apic_es7000_cluster = {
.send_IPI_all = es7000_send_IPI_all,
.send_IPI_self = default_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_mip,
.wakeup_secondary_cpu = wakeup_secondary_cpu_via_mip,

.trampoline_phys_low = 0x467,
.trampoline_phys_high = 0x469,
Expand Down Expand Up @@ -806,8 +806,6 @@ struct apic apic_es7000 = {
.send_IPI_all = es7000_send_IPI_all,
.send_IPI_self = default_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_init,

.trampoline_phys_low = 0x467,
.trampoline_phys_high = 0x469,

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/kernel/apic/numaq_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ struct apic apic_numaq = {
.send_IPI_all = numaq_send_IPI_all,
.send_IPI_self = default_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_nmi,
.wakeup_secondary_cpu = wakeup_secondary_cpu_via_nmi,
.trampoline_phys_low = NUMAQ_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = NUMAQ_TRAMPOLINE_PHYS_HIGH,

Expand Down
1 change: 0 additions & 1 deletion trunk/arch/x86/kernel/apic/probe_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@ struct apic apic_default = {
.send_IPI_all = default_send_IPI_all,
.send_IPI_self = default_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_init,
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,

Expand Down
1 change: 0 additions & 1 deletion trunk/arch/x86/kernel/apic/summit_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,6 @@ struct apic apic_summit = {
.send_IPI_all = summit_send_IPI_all,
.send_IPI_self = default_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_init,
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,

Expand Down
1 change: 0 additions & 1 deletion trunk/arch/x86/kernel/apic/x2apic_cluster.c
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,6 @@ struct apic apic_x2apic_cluster = {
.send_IPI_all = x2apic_send_IPI_all,
.send_IPI_self = x2apic_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_init,
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL,
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/x86/kernel/apic/x2apic_phys.c
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,6 @@ struct apic apic_x2apic_phys = {
.send_IPI_all = x2apic_send_IPI_all,
.send_IPI_self = x2apic_send_IPI_self,

.wakeup_cpu = wakeup_secondary_cpu_via_init,
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/x86/kernel/apic/x2apic_uv_x.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ struct apic apic_x2apic_uv_x = {
.send_IPI_all = uv_send_IPI_all,
.send_IPI_self = uv_send_IPI_self,

.wakeup_cpu = uv_wakeup_secondary,
.wakeup_secondary_cpu = uv_wakeup_secondary,
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
.wait_for_init_deassert = NULL,
Expand Down
11 changes: 8 additions & 3 deletions trunk/arch/x86/kernel/smpboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -742,7 +742,8 @@ static void __cpuinit do_fork_idle(struct work_struct *work)
/*
* NOTE - on most systems this is a PHYSICAL apic ID, but on multiquad
* (ie clustered apic addressing mode), this is a LOGICAL apic ID.
* Returns zero if CPU booted OK, else error code from ->wakeup_cpu.
* Returns zero if CPU booted OK, else error code from
* ->wakeup_secondary_cpu.
*/
static int __cpuinit do_boot_cpu(int apicid, int cpu)
{
Expand Down Expand Up @@ -829,9 +830,13 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
}

/*
* Starting actual IPI sequence...
* Kick the secondary CPU. Use the method in the APIC driver
* if it's defined - or use an INIT boot APIC message otherwise:
*/
boot_error = apic->wakeup_cpu(apicid, start_ip);
if (apic->wakeup_secondary_cpu)
boot_error = apic->wakeup_secondary_cpu(apicid, start_ip);
else
boot_error = wakeup_secondary_cpu_via_init(apicid, start_ip);

if (!boot_error) {
/*
Expand Down

0 comments on commit 0a5ea9d

Please sign in to comment.