[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] [patch 13/15] ia64: kexec: Set page size identity mapping of EFI in alt_itlb_miss
Set page size identity mapping of EFI in alt_itlb_miss This will also set the page size for identity mapped EFI memory handled by itlb_miss, as it branches to alt_itlb_miss. Without this HP rx3600 machines will hang after freeing init memory. It is also possible to implement this change in itlb_miss, but the more comprehensive approach seems beeter to me. Cc: Isaku Yamahata <yamahata@xxxxxxxxxxxxx> Cc: Tristan Gingold <tgingold@xxxxxxx> Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx> Index: xen-unstable.hg/xen/arch/ia64/xen/ivt.S =================================================================== --- xen-unstable.hg.orig/xen/arch/ia64/xen/ivt.S 2008-02-05 16:18:56.000000000 +0900 +++ xen-unstable.hg/xen/arch/ia64/xen/ivt.S 2008-02-05 16:18:57.000000000 +0900 @@ -194,14 +194,16 @@ late_alt_itlb_miss: (p7) movl r17=(__DIRTY_BITS | _PAGE_AR_RWX) movl r19=(((1 << IA64_MAX_PHYS_BITS) - 1) & ~0xfff) ;; - mov r20=cr.itir + movl r20=(PAGE_SHIFT << 2) extr.u r23=r21,IA64_PSR_CPL0_BIT,2 // extract psr.cpl and r19=r19,r16 // clear ed, reserved bits, and PTE ctrl bits extr.u r18=r16,XEN_VIRT_UC_BIT,1 // extract UC bit ;; cmp.ne p8,p0=r0,r23 // psr.cpl != 0? or r19=r17,r19 // insert PTE control bits into r19 - dep r20=0,r20,IA64_ITIR_KEY,IA64_ITIR_KEY_LEN // clear the key + ;; +(p6) movl r20=(IA64_GRANULE_SHIFT << 2) +(p7) movl r20=(IA64_GRANULE_SHIFT << 2) ;; dep r19=r18,r19,4,1 // set bit 4 (uncached) if access to UC area. mov cr.itir=r20 // set itir with cleared key -- -- Horms _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |