[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Fix TLB purge and reload for xen heap in MCA handler
# HG changeset patch # User Alex Williamson <alex.williamson@xxxxxx> # Date 1197481674 25200 # Node ID be02461e981045b550b6ff2e27a56e74a564bf71 # Parent 124f7a7f5f84f69c1d6430ace1affd8f6cc00626 [IA64] Fix TLB purge and reload for xen heap in MCA handler Xen might panic when the TLB related MCA occurred because Xen virtual address space moved to 0xf400000004000000. The following patch fixes it. Signed-off-by: Kazuhiro Suzuki <kaz@xxxxxxxxxxxxxx> --- xen/arch/ia64/linux-xen/mca_asm.S | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+) diff -r 124f7a7f5f84 -r be02461e9810 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 10:47:54 2007 -0700 @@ -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-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |