# HG changeset patch
# User yamahata@xxxxxxxxxxxxx
# Date 1197959926 -32400
# Node ID 66db69fa3d1efb8dac8ddf34a21cd74697a8c23f
# Parent e630db2d527bb2008b93a4296baaa46f61065801
fix ia64_swith_to() so that it doesn't check with init_task.
init_task isn't used directly so that comparison with init_task in
ia64_switch_to() is pointless. remove the comparison.
PATCHNAME: ia64_switch_to_dont_check_init_task
Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
diff -r e630db2d527b -r 66db69fa3d1e xen/arch/ia64/linux-xen/entry.S
--- a/xen/arch/ia64/linux-xen/entry.S Wed Dec 19 11:07:38 2007 +0900
+++ b/xen/arch/ia64/linux-xen/entry.S Tue Dec 18 15:38:46 2007 +0900
@@ -194,13 +194,13 @@ GLOBAL_ENTRY(ia64_switch_to)
.body
adds r22=IA64_TASK_THREAD_KSP_OFFSET,r13
- movl r25=init_task
#ifdef XEN
movl r27=THIS_CPU(cpu_kr)+IA64_KR_CURRENT_STACK_OFFSET;;
ld8 r27=[r27]
adds r21=IA64_TASK_THREAD_KSP_OFFSET,in0
dep r20=0,in0,60,4 // physical address of "next"
#else
+ movl r25=init_task
mov r27=IA64_KR(CURRENT_STACK)
adds r21=IA64_TASK_THREAD_KSP_OFFSET,in0
dep r20=0,in0,61,3 // physical address of "next"
@@ -208,6 +208,14 @@ GLOBAL_ENTRY(ia64_switch_to)
;;
st8 [r22]=sp // save kernel stack pointer of old task
shr.u r26=r20,IA64_GRANULE_SHIFT
+#ifdef XEN
+ ;;
+ /*
+ * If we've already mapped this task's page, we can skip doing it again.
+ */
+ cmp.eq p7,p6=r26,r27
+ br.cond.dpnt .map
+#else
cmp.eq p7,p6=r25,in0
;;
/*
@@ -215,6 +223,7 @@ GLOBAL_ENTRY(ia64_switch_to)
*/
(p6) cmp.eq p7,p6=r26,r27
(p6) br.cond.dpnt .map
+#endif
;;
.done:
(p6) ssm psr.ic // if we had to map, reenable the
psr.ic bit FIRST!!!
16638_66db69fa3d1e_ia64_switch_to_dont_check_init_task.patch
Description: Text Data
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|