# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1190997156 21600
# Node ID 4edc8d689989510d6eaa1bdcdcf742e6e43baad0
# Parent  20813f115a812840fe678f10b60b62b217fb3d69
[IA64] Kexec: Purge the VHPT entry in the TLB on kexec
Should relocate_new_kernel(), which is run by the hypervisor, purge the
VHPT on XEN like ia64_do_purge_tlb() (code in the hypervisor) does?
There is a hypervisor portion of this patch which modifies
machine_kexec() to pass the appropriate extra argument to
ia64_do_purge_tlb().
Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
---
 arch/ia64/kernel/relocate_kernel.S |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletion(-)
diff -r 20813f115a81 -r 4edc8d689989 arch/ia64/kernel/relocate_kernel.S
--- a/arch/ia64/kernel/relocate_kernel.S        Thu Sep 27 14:49:14 2007 -0600
+++ b/arch/ia64/kernel/relocate_kernel.S        Fri Sep 28 10:32:36 2007 -0600
@@ -21,7 +21,7 @@ GLOBAL_ENTRY(relocate_new_kernel)
 GLOBAL_ENTRY(relocate_new_kernel)
        .prologue
 #ifdef CONFIG_XEN
-       alloc r31=ar.pfs,7,0,0,0
+       alloc r31=ar.pfs,8,0,0,0
 #else
        alloc r31=ar.pfs,4,0,0,0
 #endif
@@ -159,6 +159,20 @@ 4:
         ;;
         srlz.i
        ;;
+
+#ifdef XEN
+       /* XXX: Is this neccessary ??? */
+       // purge TR entry for VHPT
+       mov r16=in7
+       ;;
+       dep r16=0,r16,0,IA64_GRANULE_SHIFT
+       mov r18=IA64_GRANULE_SHIFT<<2
+        ;;
+        ptr.d r16,r18
+        ;;
+        srlz.i
+       ;;
+#endif
 
        //copy segments
        movl r16=PAGE_MASK
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
 |