x86, smp: clean up ->trampoline_phys_low/high handling
- spread out the namespace on a per apic driver basis - remove wrapper macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
dac5f4121d
commit
6f177c01db
10 changed files with 23 additions and 25 deletions
|
@ -1,8 +1,8 @@
|
|||
#ifndef __ASM_ES7000_WAKECPU_H
|
||||
#define __ASM_ES7000_WAKECPU_H
|
||||
|
||||
#define TRAMPOLINE_PHYS_LOW 0x467
|
||||
#define TRAMPOLINE_PHYS_HIGH 0x469
|
||||
#define ES7000_TRAMPOLINE_PHYS_LOW 0x467
|
||||
#define ES7000_TRAMPOLINE_PHYS_HIGH 0x469
|
||||
|
||||
static inline void wait_for_init_deassert(atomic_t *deassert)
|
||||
{
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
|
||||
#define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
|
||||
|
||||
#define TRAMPOLINE_PHYS_LOW (0x467)
|
||||
#define TRAMPOLINE_PHYS_HIGH (0x469)
|
||||
#define DEFAULT_TRAMPOLINE_PHYS_LOW (0x467)
|
||||
#define DEFAULT_TRAMPOLINE_PHYS_HIGH (0x469)
|
||||
|
||||
static inline void wait_for_init_deassert(atomic_t *deassert)
|
||||
{
|
||||
|
|
|
@ -13,10 +13,10 @@ static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
|
|||
CMOS_WRITE(0xa, 0xf);
|
||||
local_flush_tlb();
|
||||
pr_debug("1.\n");
|
||||
*((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) =
|
||||
*((volatile unsigned short *)phys_to_virt(apic->trampoline_phys_high)) =
|
||||
start_eip >> 4;
|
||||
pr_debug("2.\n");
|
||||
*((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) =
|
||||
*((volatile unsigned short *)phys_to_virt(apic->trampoline_phys_low)) =
|
||||
start_eip & 0xf;
|
||||
pr_debug("3.\n");
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ static inline void smpboot_restore_warm_reset_vector(void)
|
|||
*/
|
||||
CMOS_WRITE(0, 0xf);
|
||||
|
||||
*((volatile long *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) = 0;
|
||||
*((volatile long *)phys_to_virt(apic->trampoline_phys_low)) = 0;
|
||||
}
|
||||
|
||||
static inline void __init smpboot_setup_io_apic(void)
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
#ifndef _ASM_X86_MACH_GENERIC_MACH_WAKECPU_H
|
||||
#define _ASM_X86_MACH_GENERIC_MACH_WAKECPU_H
|
||||
|
||||
#define TRAMPOLINE_PHYS_LOW (apic->trampoline_phys_low)
|
||||
#define TRAMPOLINE_PHYS_HIGH (apic->trampoline_phys_high)
|
||||
#define wait_for_init_deassert (apic->wait_for_init_deassert)
|
||||
#define smp_callin_clear_local_apic (apic->smp_callin_clear_local_apic)
|
||||
#define store_NMI_vector (apic->store_NMI_vector)
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
/* This file copes with machines that wakeup secondary CPUs by NMIs */
|
||||
|
||||
#define TRAMPOLINE_PHYS_LOW (0x8)
|
||||
#define TRAMPOLINE_PHYS_HIGH (0xa)
|
||||
#define NUMAQ_TRAMPOLINE_PHYS_LOW (0x8)
|
||||
#define NUMAQ_TRAMPOLINE_PHYS_HIGH (0xa)
|
||||
|
||||
/* We don't do anything here because we use NMI's to boot instead */
|
||||
static inline void wait_for_init_deassert(atomic_t *deassert)
|
||||
|
@ -24,17 +24,17 @@ static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
|
|||
{
|
||||
printk("Storing NMI vector\n");
|
||||
*high =
|
||||
*((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH));
|
||||
*((volatile unsigned short *)phys_to_virt(NUMAQ_TRAMPOLINE_PHYS_HIGH));
|
||||
*low =
|
||||
*((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW));
|
||||
*((volatile unsigned short *)phys_to_virt(NUMAQ_TRAMPOLINE_PHYS_LOW));
|
||||
}
|
||||
|
||||
static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
|
||||
{
|
||||
printk("Restoring NMI vector\n");
|
||||
*((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_HIGH)) =
|
||||
*((volatile unsigned short *)phys_to_virt(NUMAQ_TRAMPOLINE_PHYS_HIGH)) =
|
||||
*high;
|
||||
*((volatile unsigned short *)phys_to_virt(TRAMPOLINE_PHYS_LOW)) =
|
||||
*((volatile unsigned short *)phys_to_virt(NUMAQ_TRAMPOLINE_PHYS_LOW)) =
|
||||
*low;
|
||||
}
|
||||
|
||||
|
|
|
@ -104,8 +104,8 @@ struct genapic apic_bigsmp = {
|
|||
.send_IPI_self = NULL,
|
||||
|
||||
.wakeup_cpu = NULL,
|
||||
.trampoline_phys_low = TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = TRAMPOLINE_PHYS_HIGH,
|
||||
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = wait_for_init_deassert,
|
||||
.smp_callin_clear_local_apic = smp_callin_clear_local_apic,
|
||||
.store_NMI_vector = store_NMI_vector,
|
||||
|
|
|
@ -85,8 +85,8 @@ struct genapic apic_default = {
|
|||
.send_IPI_self = NULL,
|
||||
|
||||
.wakeup_cpu = NULL,
|
||||
.trampoline_phys_low = TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = TRAMPOLINE_PHYS_HIGH,
|
||||
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = wait_for_init_deassert,
|
||||
.smp_callin_clear_local_apic = smp_callin_clear_local_apic,
|
||||
.store_NMI_vector = store_NMI_vector,
|
||||
|
|
|
@ -140,8 +140,8 @@ struct genapic apic_es7000 = {
|
|||
.send_IPI_self = NULL,
|
||||
|
||||
.wakeup_cpu = NULL,
|
||||
.trampoline_phys_low = TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = TRAMPOLINE_PHYS_HIGH,
|
||||
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = wait_for_init_deassert,
|
||||
.smp_callin_clear_local_apic = smp_callin_clear_local_apic,
|
||||
.store_NMI_vector = store_NMI_vector,
|
||||
|
|
|
@ -104,8 +104,8 @@ struct genapic apic_numaq = {
|
|||
.send_IPI_self = NULL,
|
||||
|
||||
.wakeup_cpu = NULL,
|
||||
.trampoline_phys_low = TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = TRAMPOLINE_PHYS_HIGH,
|
||||
.trampoline_phys_low = NUMAQ_TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = NUMAQ_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = wait_for_init_deassert,
|
||||
.smp_callin_clear_local_apic = smp_callin_clear_local_apic,
|
||||
.store_NMI_vector = store_NMI_vector,
|
||||
|
|
|
@ -84,8 +84,8 @@ struct genapic apic_summit = {
|
|||
.send_IPI_self = NULL,
|
||||
|
||||
.wakeup_cpu = NULL,
|
||||
.trampoline_phys_low = TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = TRAMPOLINE_PHYS_HIGH,
|
||||
.trampoline_phys_low = DEFAULT_TRAMPOLINE_PHYS_LOW,
|
||||
.trampoline_phys_high = DEFAULT_TRAMPOLINE_PHYS_HIGH,
|
||||
.wait_for_init_deassert = wait_for_init_deassert,
|
||||
.smp_callin_clear_local_apic = smp_callin_clear_local_apic,
|
||||
.store_NMI_vector = store_NMI_vector,
|
||||
|
|
Reference in a new issue