ia64/xen-unstable

changeset 16769:d4abdf169a00

[IA64] Fix start in head.S

Later stack was allocated from domain heap, so that stack should be
mapped if necessary.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
author Alex Williamson <alex.williamson@hp.com>
date Thu Jan 17 12:05:43 2008 -0700 (2008-01-17)
parents fb47d7f0d84b
children fd56e24b07c8
files xen/arch/ia64/linux-xen/head.S
line diff
     1.1 --- a/xen/arch/ia64/linux-xen/head.S	Thu Jan 17 12:05:43 2008 -0700
     1.2 +++ b/xen/arch/ia64/linux-xen/head.S	Thu Jan 17 12:05:43 2008 -0700
     1.3 @@ -331,11 +331,23 @@ 1:	// now we are in virtual mode
     1.4  	;;
     1.5  	tpa r3=r2		// r3 == phys addr of task struct
     1.6  	mov r16=-1
     1.7 +#ifdef XEN
     1.8 +	;;
     1.9 +	dep r2=-1,r3,60,4	// IMVA of task	
    1.10 +	// XEN:	check overlap with XENHEAP
    1.11 +	mov r17=ip
    1.12 +	;;
    1.13 +	tpa r17=r17
    1.14 +	;;
    1.15 +	dep r17=0,r17,0,KERNEL_TR_PAGE_SHIFT
    1.16 +	dep r18=0,r3,0,KERNEL_TR_PAGE_SHIFT
    1.17 +	;;
    1.18 +	cmp.eq p4,p0=r17,r18
    1.19 +(p4)	br.cond.dpnt .load_current
    1.20 +#else
    1.21  (isBP)	br.cond.dpnt .load_current // BP stack is on region 5 --- no need to map it
    1.22 +#endif
    1.23  
    1.24 -#ifndef XEN
    1.25 -	// XEN:	stack is allocated in xenheap, which is currently always
    1.26 -	//  mapped.
    1.27  	// load mapping for stack (virtaddr in r2, physaddr in r3)
    1.28  	rsm psr.ic
    1.29  	movl r17=PAGE_KERNEL
    1.30 @@ -344,9 +356,7 @@ 1:	// now we are in virtual mode
    1.31  	dep r18=0,r3,0,12
    1.32  	;;
    1.33  	or r18=r17,r18
    1.34 -#ifdef XEN
    1.35 -	dep r2=-1,r3,60,4	// IMVA of task
    1.36 -#else
    1.37 +#ifndef XEN
    1.38  	dep r2=-1,r3,61,3	// IMVA of task
    1.39  #endif
    1.40  	;;
    1.41 @@ -364,7 +374,6 @@ 1:	// now we are in virtual mode
    1.42  	;;
    1.43  	ssm psr.ic
    1.44  	srlz.d
    1.45 -#endif
    1.46    	;;
    1.47  	
    1.48  .load_current: