WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

[Xen-ia64-devel] [PATCH] Fix TLB purge and reload for xen heap in MCA ha

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-ia64-devel] [PATCH] Fix TLB purge and reload for xen heap in MCA handler
From: SUZUKI Kazuhiro <kaz@xxxxxxxxxxxxxx>
Date: Wed, 12 Dec 2007 18:35:45 +0900 (JST)
Delivery-date: Wed, 12 Dec 2007 01:36:14 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
Hi all,

Xen might panic when the TLB related MCA occurred because Xen
virtual address space moved to 0xf400000004000000.

The following patch fixes it.

Thanks.
KAZ

Signed-off-by: Kazuhiro Suzuki <kaz@xxxxxxxxxxxxxx>
diff -r 124f7a7f5f84 xen/arch/ia64/linux-xen/mca_asm.S
--- a/xen/arch/ia64/linux-xen/mca_asm.S Tue Dec 11 10:22:37 2007 -0700
+++ b/xen/arch/ia64/linux-xen/mca_asm.S Wed Dec 12 14:31:21 2007 +0900
@@ -283,6 +283,19 @@ 4:
        ;;
        srlz.d
        ;;
+#ifdef XEN
+       /* xen heap is identity mapped */
+       mov r19=ip
+       ;; 
+        dep r17=0,r19,0,KERNEL_TR_PAGE_SHIFT
+       ;; 
+       dep r17=-1,r17,60,4
+       ;; 
+       ptr.d r17,r18
+       ;;
+       srlz.d
+       ;; 
+#endif
        // 2. Purge DTR for PERCPU data.
        movl r16=PERCPU_ADDR
        mov r18=PERCPU_PAGE_SHIFT<<2
@@ -418,6 +431,18 @@ ia64_reload_tr:
        srlz.i
        srlz.d
        ;;
+#ifdef XEN
+       /* xen heap is identity mapped */
+       mov r16=IA64_TR_XEN_HEAP_REGS  
+       dep r17=-1,r17,60,4
+       ;; 
+       mov cr.ifa=r17
+       ;;
+       itr.d dtr[r16]=r18
+       ;;
+       srlz.d
+       ;; 
+#endif
        // 2. Reload DTR register for PERCPU data.
        GET_THIS_PADDR(r2, ia64_mca_per_cpu_pte)
        ;;
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
<Prev in Thread] Current Thread [Next in Thread>