1 message in com.xensource.lists.xen-ia64-devel[Xen-ia64-devel] [PATCH 8/12] fix start| From | Sent On | Attachments |
|---|---|---|
| Isaku Yamahata | 19 Dec 2007 23:36 | .patch |
| Subject: | [Xen-ia64-devel] [PATCH 8/12] fix start![]() |
|---|---|
| From: | Isaku Yamahata (yama...@valinux.co.jp) |
| Date: | 12/19/2007 11:36:42 PM |
| List: | com.xensource.lists.xen-ia64-devel |
| Attachments: |
# HG changeset patch # User yama...@valinux.co.jp # 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 <yama...@valinux.co.jp>
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:





.patch