ia64/xen-unstable

changeset 9013:88f97bb8f3ae

[IA64] Every processor call xen_early_setup (required on SMP-guest to set ivt).

Only BP set running_on_xen.
xensetup.S slightly compacted.

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
author awilliam@xenbuild.aw
date Wed Mar 01 10:01:54 2006 -0700 (2006-03-01)
parents 18b0911d936d
children 673f62edbfbe
files linux-2.6-xen-sparse/arch/ia64/kernel/head.S linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S
line diff
     1.1 --- a/linux-2.6-xen-sparse/arch/ia64/kernel/head.S	Wed Mar 01 09:53:17 2006 -0700
     1.2 +++ b/linux-2.6-xen-sparse/arch/ia64/kernel/head.S	Wed Mar 01 10:01:54 2006 -0700
     1.3 @@ -363,6 +363,12 @@ 1:	// now we are in virtual mode
     1.4  	;;
     1.5  (isBP)	st8 [r2]=r28		// save the address of the boot param area passed by the bootloader
     1.6  
     1.7 +#ifdef CONFIG_XEN
     1.8 +	//  Note: isBP is used by the subprogram.
     1.9 +	br.call.sptk.many rp=early_xen_setup
    1.10 +	;;
    1.11 +#endif
    1.12 +
    1.13  #ifdef CONFIG_SMP
    1.14  (isAP)	br.call.sptk.many rp=start_secondary
    1.15  .ret0:
    1.16 @@ -371,10 +377,6 @@ 1:	// now we are in virtual mode
    1.17  
    1.18  	// This is executed by the bootstrap processor (bsp) only:
    1.19  
    1.20 -#ifdef CONFIG_XEN
    1.21 -	br.call.sptk.many rp=early_xen_setup
    1.22 -	;;
    1.23 -#endif
    1.24  #ifdef CONFIG_IA64_FW_EMU
    1.25  	// initialize PAL & SAL emulator:
    1.26  	br.call.sptk.many rp=sys_fw_init
     2.1 --- a/linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S	Wed Mar 01 09:53:17 2006 -0700
     2.2 +++ b/linux-2.6-xen-sparse/arch/ia64/xen/xensetup.S	Wed Mar 01 10:01:54 2006 -0700
     2.3 @@ -14,13 +14,15 @@
     2.4  running_on_xen:
     2.5  	data4 0
     2.6  
     2.7 +#define isBP	p3	// are we the Bootstrap Processor?
     2.8 +
     2.9  	.text
    2.10  GLOBAL_ENTRY(early_xen_setup)
    2.11 -	mov r8=cr.dcr;;
    2.12 -	extr.u r8=r8,63,1
    2.13 -	movl r9=running_on_xen;;
    2.14 -	st4 [r9]=r8;;
    2.15 +	mov r8=cr.dcr
    2.16 +(isBP)	movl r9=running_on_xen;;
    2.17 +	extr.u r8=r8,63,1;;
    2.18  	cmp.ne p7,p0=r8,r0;;
    2.19 +(isBP)	st4 [r9]=r8
    2.20  (p7)	movl r10=xen_ivt;;
    2.21  (p7)	mov cr.iva=r10
    2.22  	br.ret.sptk.many rp;;
    2.23 @@ -28,6 +30,6 @@ END(early_xen_setup)
    2.24  
    2.25  GLOBAL_ENTRY(is_running_on_xen)
    2.26  	movl r9=running_on_xen;;
    2.27 -	ld4 r8=[r9];;
    2.28 +	ld4 r8=[r9]
    2.29  	br.ret.sptk.many rp;;
    2.30  END(is_running_on_xen)