The patch titled i386-pda-initialize-the-per-cpu-data-area voyager fix has been removed from the -mm tree. Its filename was i386-pda-initialize-the-per-cpu-data-area-voyager-fix.patch This patch was dropped because it was folded into i386-pda-initialize-the-per-cpu-data-area.patch ------------------------------------------------------ Subject: i386-pda-initialize-the-per-cpu-data-area voyager fix From: Jeremy Fitzhardinge <jeremy@xxxxxxxx> I think there'll need to be a little Voyager fixup patch for this, but it should be pretty small. Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/i386/mach-voyager/voyager_smp.c | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletion(-) diff -puN arch/i386/mach-voyager/voyager_smp.c~i386-pda-initialize-the-per-cpu-data-area-voyager-fix arch/i386/mach-voyager/voyager_smp.c --- a/arch/i386/mach-voyager/voyager_smp.c~i386-pda-initialize-the-per-cpu-data-area-voyager-fix +++ a/arch/i386/mach-voyager/voyager_smp.c @@ -28,6 +28,7 @@ #include <asm/pgalloc.h> #include <asm/tlbflush.h> #include <asm/arch_hooks.h> +#include <asm/pda.h> /* TLB state -- visible externally, indexed physically */ DEFINE_PER_CPU(struct tlb_state, cpu_tlbstate) ____cacheline_aligned = { &init_mm, 0 }; @@ -425,6 +426,7 @@ find_smp_config(void) VOYAGER_SUS_IN_CONTROL_PORT); current_thread_info()->cpu = boot_cpu_id; + write_pda(cpu_number, boot_cpu_id); } /* @@ -461,7 +463,7 @@ start_secondary(void *unused) /* external functions not defined in the headers */ extern void calibrate_delay(void); - cpu_init(); + secondary_cpu_init(); /* OK, we're in the routine */ ack_CPI(VIC_CPU_BOOT_CPI); @@ -581,6 +583,15 @@ do_boot_cpu(__u8 cpu) /* init_tasks (in sched.c) is indexed logically */ stack_start.esp = (void *) idle->thread.esp; + /* Pre-allocate and initialize the CPU's GDT and PDA so it + doesn't have to do any memory allocation during the + delicate CPU-bringup phase. */ + if (!init_gdt(cpu, idle)) { + printk(KERN_INFO "Couldn't allocate GDT/PDA for CPU %d\n", cpu); + cpucount--; + return; + } + irq_ctx_init(cpu); /* Note: Don't modify initial ss override */ @@ -1957,4 +1968,5 @@ void __init smp_setup_processor_id(void) { current_thread_info()->cpu = hard_smp_processor_id(); + write_pda(cpu_number, hard_smp_processor_id()); } _ Patches currently in -mm which might be from jeremy@xxxxxxxx are origin.patch i386-use-asm-offsets-for-the-offsets-of-registers-into-the-pt_regs-struct-rather-than-having-hard-coded-constants.patch i386-pda-basic-definitions-for-i386-pda.patch i386-pda-initialize-the-per-cpu-data-area.patch i386-pda-initialize-the-per-cpu-data-area-voyager-fix.patch i386-pda-use-%gs-as-the-pda-base-segment-in-the-kernel.patch i386-pda-fix-places-where-using-%gs-changes-the-usermode-abi.patch i386-pda-update-sys_vm86-to-cope-with-changed-pt_regs-and-%gs-usage.patch i386-pda-implement-smp_processor_id-with-the-pda.patch i386-pda-implement-current-with-the-pda.patch i386-pda-store-the-interrupt-regs-pointer-in-the-pda.patch paravirt-skip-timer-works.patch paravirt-skip-timer-works-tidy.patch paravirt-interrupts-subarch-cleanup.patch paravirt-fix-missing-pte-update.patch paravirt-fix-bad-mmu-names.patch paravirt-mmu-header-movement.patch generic-bug-implementation.patch generic-bug-for-i386.patch generic-bug-for-x86-64.patch uml-add-generic-bug-support.patch use-generic-bug-for-ppc.patch bug-test-1.patch fix-generic-warn_on-message.patch time-uninline-jiffiesh-fix.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html