ia64/xen-unstable

changeset 7422:7155eafc858a

Fix x86_64 smp boot:
The local_setup_timer prototype was bad. The call from start
secondary() to it was calling with out the CPU parameter. Eventually the
CPU parameter received by the local_setup_timer is bogus (big negative
number). With such a big cpu number the per_cpu macro was trying to
access totally wrong memory location (per cpu data offset for big -ve no
cpu) causing the unhandled page fault. Because the dom0 was panicking
the error information on the serial console was also not going through,
giving just clueless hang. With hyper call based debug statement I
could find out what was going wrong in the dom0.

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
author kaf24@firebug.cl.cam.ac.uk
date Tue Oct 18 11:07:55 2005 +0100 (2005-10-18)
parents eea0e77b7683
children 551d099dae3a
files linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c
line diff
     1.1 --- a/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c	Tue Oct 18 11:04:48 2005 +0100
     1.2 +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/kernel/smpboot.c	Tue Oct 18 11:07:55 2005 +0100
     1.3 @@ -445,7 +445,7 @@ void __cpuinit smp_callin(void)
     1.4  }
     1.5  
     1.6  #ifdef CONFIG_XEN
     1.7 -extern void local_setup_timer(void);
     1.8 +extern void local_setup_timer(unsigned int cpu);
     1.9  #endif
    1.10  
    1.11  /*
    1.12 @@ -478,7 +478,7 @@ void __cpuinit start_secondary(void)
    1.13  
    1.14  	enable_APIC_timer();
    1.15  #else
    1.16 -	local_setup_timer();
    1.17 +	local_setup_timer(smp_processor_id());
    1.18  	smp_intr_init();
    1.19  	local_irq_enable();
    1.20  #endif