Loading arch/x86/kernel/smpboot_64.c +3 −26 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ #include <asm/numa.h> #include <mach_wakecpu.h> #include <smpboot_hooks.h> /* Set when the idlers are all forked */ int smp_threads_ready; Loading Loading @@ -517,14 +518,7 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid) Dprintk("Setting warm reset code and vector.\n"); CMOS_WRITE(0xa, 0xf); local_flush_tlb(); Dprintk("1.\n"); *((volatile unsigned short *) phys_to_virt(0x469)) = start_rip >> 4; Dprintk("2.\n"); *((volatile unsigned short *) phys_to_virt(0x467)) = start_rip & 0xf; Dprintk("3.\n"); smpboot_setup_warm_reset_vector(start_rip); /* * Be paranoid about clearing APIC errors. */ Loading Loading @@ -593,23 +587,6 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid) cycles_t cacheflush_time; unsigned long cache_decay_ticks; /* * Cleanup possible dangling ends... */ static __cpuinit void smp_cleanup_boot(void) { /* * Paranoid: Set warm reset code and vector here back * to default values. */ CMOS_WRITE(0, 0xf); /* * Reset trampoline flag */ *((volatile int *) phys_to_virt(0x467)) = 0; } /* * Fall back to non SMP mode after errors. * Loading Loading @@ -827,7 +804,7 @@ extern void smp_checks(void); */ void __init native_smp_cpus_done(unsigned int max_cpus) { smp_cleanup_boot(); smpboot_restore_warm_reset_vector(); Dprintk("Boot done.\n"); Loading Loading
arch/x86/kernel/smpboot_64.c +3 −26 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ #include <asm/numa.h> #include <mach_wakecpu.h> #include <smpboot_hooks.h> /* Set when the idlers are all forked */ int smp_threads_ready; Loading Loading @@ -517,14 +518,7 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid) Dprintk("Setting warm reset code and vector.\n"); CMOS_WRITE(0xa, 0xf); local_flush_tlb(); Dprintk("1.\n"); *((volatile unsigned short *) phys_to_virt(0x469)) = start_rip >> 4; Dprintk("2.\n"); *((volatile unsigned short *) phys_to_virt(0x467)) = start_rip & 0xf; Dprintk("3.\n"); smpboot_setup_warm_reset_vector(start_rip); /* * Be paranoid about clearing APIC errors. */ Loading Loading @@ -593,23 +587,6 @@ static int __cpuinit do_boot_cpu(int cpu, int apicid) cycles_t cacheflush_time; unsigned long cache_decay_ticks; /* * Cleanup possible dangling ends... */ static __cpuinit void smp_cleanup_boot(void) { /* * Paranoid: Set warm reset code and vector here back * to default values. */ CMOS_WRITE(0, 0xf); /* * Reset trampoline flag */ *((volatile int *) phys_to_virt(0x467)) = 0; } /* * Fall back to non SMP mode after errors. * Loading Loading @@ -827,7 +804,7 @@ extern void smp_checks(void); */ void __init native_smp_cpus_done(unsigned int max_cpus) { smp_cleanup_boot(); smpboot_restore_warm_reset_vector(); Dprintk("Boot done.\n"); Loading