mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
Merge branch 'x86-trampoline-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-trampoline-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86-32, mm: Add an initial page table for core bootstrapping
This commit is contained in:
commit
10f2a2b0f6
11 changed files with 58 additions and 121 deletions
|
@ -299,22 +299,16 @@ notrace static void __cpuinit start_secondary(void *unused)
|
|||
* fragile that we want to limit the things done here to the
|
||||
* most necessary things.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
/*
|
||||
* Switch away from the trampoline page-table
|
||||
*
|
||||
* Do this before cpu_init() because it needs to access per-cpu
|
||||
* data which may not be mapped in the trampoline page-table.
|
||||
*/
|
||||
load_cr3(swapper_pg_dir);
|
||||
__flush_tlb_all();
|
||||
#endif
|
||||
|
||||
cpu_init();
|
||||
preempt_disable();
|
||||
smp_callin();
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
/* switch away from the initial page table */
|
||||
load_cr3(swapper_pg_dir);
|
||||
__flush_tlb_all();
|
||||
#endif
|
||||
|
||||
/* otherwise gcc will move up smp_processor_id before the cpu_init */
|
||||
barrier();
|
||||
/*
|
||||
|
@ -785,7 +779,6 @@ do_rest:
|
|||
#ifdef CONFIG_X86_32
|
||||
/* Stack for startup_32 can be just as for start_secondary onwards */
|
||||
irq_ctx_init(cpu);
|
||||
initial_page_table = __pa(&trampoline_pg_dir);
|
||||
#else
|
||||
clear_tsk_thread_flag(c_idle.idle, TIF_FORK);
|
||||
initial_gs = per_cpu_offset(cpu);
|
||||
|
@ -934,7 +927,6 @@ int __cpuinit native_cpu_up(unsigned int cpu)
|
|||
per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
|
||||
|
||||
err = do_boot_cpu(apicid, cpu);
|
||||
|
||||
if (err) {
|
||||
pr_debug("do_boot_cpu failed %d\n", err);
|
||||
return -EIO;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue