Yang, Xiaowei
2006-Sep-26 03:23 UTC
[Xen-devel] RE: [VMXASSIST] Fix virt-to-phys translation routine.
Keir, Thanks for fixing c/s 11573 bug. It was just I wanted to do. You are quicker:-) One thing to notice: @@ -99,6 +94,12 @@ guest_linear_to_real(uint32_t base) l1_mfn = ((uint64_t *)l2_mfn)[(base >> 21) & 0x1ff]; if (!(l1_mfn & PT_ENTRY_PRESENT)) panic("l2 entry not present\n"); + + if ((oldctx.cr4 & CR4_PSE) && (l1_mfn & PDE_PS)) { + l0_mfn = l1_mfn & 0x3ffe00000ULL; + return l0_mfn + (base & 0x1fffff); + } + Intel manual says: "When PAE is enabled, the 2-MByte page size is selected by setting the page size (PS) flag in a page-directory entry. The PSE flag in control register CR4 has no affect on the page size when PAE is enabled. So condition (oldctx.cr4 & CR4_PSE) should be not needed. Thanks, Xiaowei _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel