# HG changeset patch
# User [EMAIL PROTECTED]
# Date 1197959926 -32400
# Node ID 5cacdbf13f6a8f5a0dfdca5a5ef51b2149929b81
# Parent  809d9d53f7608145df7016407b43876eaf9227d8
fix start in head.S.
Later stack was allocated from domain heap, so that stack should be
mapped if necessary.
PATCHNAME: fix_start_head_s

Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>

diff -r 809d9d53f760 -r 5cacdbf13f6a xen/arch/ia64/linux-xen/head.S
--- a/xen/arch/ia64/linux-xen/head.S    Wed Dec 19 11:43:26 2007 +0900
+++ b/xen/arch/ia64/linux-xen/head.S    Tue Dec 18 15:38:46 2007 +0900
@@ -331,11 +331,23 @@ 1:        // now we are in virtual mode
        ;;
        tpa r3=r2               // r3 == phys addr of task struct
        mov r16=-1
+#ifdef XEN
+       ;;
+       dep r2=-1,r3,60,4       // IMVA of task 
+       // XEN: check overlap with XENHEAP
+       mov r17=ip
+       ;;
+       tpa r17=r17
+       ;;
+       dep r17=0,r17,0,KERNEL_TR_PAGE_SHIFT
+       dep r18=0,r3,0,KERNEL_TR_PAGE_SHIFT
+       ;;
+       cmp.eq p4,p0=r17,r18
+(p4)   br.cond.dpnt .load_current
+#else
 (isBP) br.cond.dpnt .load_current // BP stack is on region 5 --- no need to 
map it
-
-#ifndef XEN
-       // XEN: stack is allocated in xenheap, which is currently always
-       //  mapped.
+#endif
+
        // load mapping for stack (virtaddr in r2, physaddr in r3)
        rsm psr.ic
        movl r17=PAGE_KERNEL
@@ -344,9 +356,7 @@ 1:  // now we are in virtual mode
        dep r18=0,r3,0,12
        ;;
        or r18=r17,r18
-#ifdef XEN
-       dep r2=-1,r3,60,4       // IMVA of task
-#else
+#ifndef XEN
        dep r2=-1,r3,61,3       // IMVA of task
 #endif
        ;;
@@ -364,7 +374,6 @@ 1:  // now we are in virtual mode
        ;;
        ssm psr.ic
        srlz.d
-#endif
        ;;
        
 .load_current:
# HG changeset patch
# User [EMAIL PROTECTED]
# Date 1197959926 -32400
# Node ID 5cacdbf13f6a8f5a0dfdca5a5ef51b2149929b81
# Parent  809d9d53f7608145df7016407b43876eaf9227d8
fix start in head.S.
Later stack was allocated from domain heap, so that stack should be
mapped if necessary.
PATCHNAME: fix_start_head_s

Signed-off-by: Isaku Yamahata <[EMAIL PROTECTED]>

diff -r 809d9d53f760 -r 5cacdbf13f6a xen/arch/ia64/linux-xen/head.S
--- a/xen/arch/ia64/linux-xen/head.S	Wed Dec 19 11:43:26 2007 +0900
+++ b/xen/arch/ia64/linux-xen/head.S	Tue Dec 18 15:38:46 2007 +0900
@@ -331,11 +331,23 @@ 1:	// now we are in virtual mode
 	;;
 	tpa r3=r2		// r3 == phys addr of task struct
 	mov r16=-1
+#ifdef XEN
+	;;
+	dep r2=-1,r3,60,4	// IMVA of task	
+	// XEN:	check overlap with XENHEAP
+	mov r17=ip
+	;;
+	tpa r17=r17
+	;;
+	dep r17=0,r17,0,KERNEL_TR_PAGE_SHIFT
+	dep r18=0,r3,0,KERNEL_TR_PAGE_SHIFT
+	;;
+	cmp.eq p4,p0=r17,r18
+(p4)	br.cond.dpnt .load_current
+#else
 (isBP)	br.cond.dpnt .load_current // BP stack is on region 5 --- no need to map it
-
-#ifndef XEN
-	// XEN:	stack is allocated in xenheap, which is currently always
-	//  mapped.
+#endif
+
 	// load mapping for stack (virtaddr in r2, physaddr in r3)
 	rsm psr.ic
 	movl r17=PAGE_KERNEL
@@ -344,9 +356,7 @@ 1:	// now we are in virtual mode
 	dep r18=0,r3,0,12
 	;;
 	or r18=r17,r18
-#ifdef XEN
-	dep r2=-1,r3,60,4	// IMVA of task
-#else
+#ifndef XEN
 	dep r2=-1,r3,61,3	// IMVA of task
 #endif
 	;;
@@ -364,7 +374,6 @@ 1:	// now we are in virtual mode
 	;;
 	ssm psr.ic
 	srlz.d
-#endif
   	;;
 	
 .load_current:
_______________________________________________
Xen-ia64-devel mailing list
[email protected]
http://lists.xensource.com/xen-ia64-devel

Reply via email to