Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit abfa584c authored by Ingo Molnar's avatar Ingo Molnar
Browse files

x86: set ->trampoline_phys_low/high on 64-bit too



64-bit x86 has zero for ->trampoline_phys_low/high, but the smpboot
code can use these values - so it's better to set them up to their
correct values.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 6f177c01
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -88,6 +88,12 @@ struct genapic {

extern struct genapic *apic;

/*
 * Warm reset vector default position:
 */
#define DEFAULT_TRAMPOLINE_PHYS_LOW		0x467
#define DEFAULT_TRAMPOLINE_PHYS_HIGH		0x469

#ifdef CONFIG_X86_32
extern void es7000_update_genapic_to_cluster(void);
#else
+0 −3
Original line number Diff line number Diff line
#ifndef _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H
#define _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H

#define DEFAULT_TRAMPOLINE_PHYS_LOW (0x467)
#define DEFAULT_TRAMPOLINE_PHYS_HIGH (0x469)

static inline void wait_for_init_deassert(atomic_t *deassert)
{
	while (!atomic_read(deassert))
+4 −4
Original line number Diff line number Diff line
@@ -224,8 +224,8 @@ struct genapic apic_flat = {
	.send_IPI_self			= apic_send_IPI_self,

	.wakeup_cpu			= NULL,
	.trampoline_phys_low		= 0,
	.trampoline_phys_high		= 0,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
	.trampoline_phys_high		= DEFAULT_TRAMPOLINE_PHYS_HIGH,
	.wait_for_init_deassert		= NULL,
	.smp_callin_clear_local_apic	= NULL,
	.store_NMI_vector		= NULL,
@@ -370,8 +370,8 @@ struct genapic apic_physflat = {
	.send_IPI_self			= apic_send_IPI_self,

	.wakeup_cpu			= NULL,
	.trampoline_phys_low		= 0,
	.trampoline_phys_high		= 0,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
	.trampoline_phys_high		= DEFAULT_TRAMPOLINE_PHYS_HIGH,
	.wait_for_init_deassert		= NULL,
	.smp_callin_clear_local_apic	= NULL,
	.store_NMI_vector		= NULL,
+2 −2
Original line number Diff line number Diff line
@@ -228,8 +228,8 @@ struct genapic apic_x2apic_cluster = {
	.send_IPI_self			= x2apic_send_IPI_self,

	.wakeup_cpu			= NULL,
	.trampoline_phys_low		= 0,
	.trampoline_phys_high		= 0,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
	.trampoline_phys_high		= DEFAULT_TRAMPOLINE_PHYS_HIGH,
	.wait_for_init_deassert		= NULL,
	.smp_callin_clear_local_apic	= NULL,
	.store_NMI_vector		= NULL,
+2 −2
Original line number Diff line number Diff line
@@ -214,8 +214,8 @@ struct genapic apic_x2apic_phys = {
	.send_IPI_self			= x2apic_send_IPI_self,

	.wakeup_cpu			= NULL,
	.trampoline_phys_low		= 0,
	.trampoline_phys_high		= 0,
	.trampoline_phys_low		= DEFAULT_TRAMPOLINE_PHYS_LOW,
	.trampoline_phys_high		= DEFAULT_TRAMPOLINE_PHYS_HIGH,
	.wait_for_init_deassert		= NULL,
	.smp_callin_clear_local_apic	= NULL,
	.store_NMI_vector		= NULL,
Loading