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

Commit 77ad386e authored by Ingo Molnar's avatar Ingo Molnar
Browse files

x86: standalone trampoline code



move the trampoline setup code out of smpboot.c - UP kernels can have
suspend support too.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent e44b7b75
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -28,6 +28,7 @@ obj-y += alternative.o i8253.o
obj-$(CONFIG_X86_64)	+= pci-nommu_64.o bugs_64.o
obj-$(CONFIG_X86_64)	+= pci-nommu_64.o bugs_64.o
obj-y			+= tsc_$(BITS).o io_delay.o rtc.o
obj-y			+= tsc_$(BITS).o io_delay.o rtc.o


obj-$(CONFIG_X86_TRAMPOLINE)	+= trampoline.o
obj-y				+= i387.o
obj-y				+= i387.o
obj-y				+= ptrace.o
obj-y				+= ptrace.o
obj-y				+= ds.o
obj-y				+= ds.o
+0 −15
Original line number Original line Diff line number Diff line
@@ -140,9 +140,6 @@ static atomic_t init_deasserted;


static int boot_cpu_logical_apicid;
static int boot_cpu_logical_apicid;


/* ready for x86_64, no harm for x86, since it will overwrite after alloc */
unsigned char *trampoline_base = __va(TRAMPOLINE_BASE);

/* representing cpus for which sibling maps can be computed */
/* representing cpus for which sibling maps can be computed */
static cpumask_t cpu_sibling_setup_map;
static cpumask_t cpu_sibling_setup_map;


@@ -550,18 +547,6 @@ cpumask_t cpu_coregroup_map(int cpu)
		return c->llc_shared_map;
		return c->llc_shared_map;
}
}


/*
 * Currently trivial. Write the real->protected mode
 * bootstrap into the page concerned. The caller
 * has made sure it's suitably aligned.
 */
unsigned long setup_trampoline(void)
{
	memcpy(trampoline_base, trampoline_data,
	       trampoline_end - trampoline_data);
	return virt_to_phys(trampoline_base);
}

#ifdef CONFIG_X86_32
#ifdef CONFIG_X86_32
/*
/*
 * We are called very early to get the low memory for the
 * We are called very early to get the low memory for the
+18 −0
Original line number Original line Diff line number Diff line
#include <linux/io.h>

#include <asm/trampoline.h>

/* ready for x86_64, no harm for x86, since it will overwrite after alloc */
unsigned char *trampoline_base = __va(TRAMPOLINE_BASE);

/*
 * Currently trivial. Write the real->protected mode
 * bootstrap into the page concerned. The caller
 * has made sure it's suitably aligned.
 */
unsigned long setup_trampoline(void)
{
	memcpy(trampoline_base, trampoline_data,
	       trampoline_end - trampoline_data);
	return virt_to_phys(trampoline_base);
}