[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Fix SVM PAE support.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 933d0d70378f9a71fbb3db5361d9064786c6977a # Parent 0820df08a996d332d2edab73fb0524346772ee0f Fix SVM PAE support. Signed-off-by: Tom Woller <thomas.woller@xxxxxxx> diff -r 0820df08a996 -r 933d0d70378f xen/arch/x86/hvm/svm/svm.c --- a/xen/arch/x86/hvm/svm/svm.c Tue Feb 28 09:13:26 2006 +++ b/xen/arch/x86/hvm/svm/svm.c Tue Feb 28 09:14:10 2006 @@ -982,17 +982,23 @@ !vlapic_global_enabled((VLAPIC(v))) ) clear_bit(X86_FEATURE_APIC, &edx); -#ifdef __x86_64__ +#if CONFIG_PAGING_LEVELS < 3 + clear_bit(X86_FEATURE_PAE, &edx); + clear_bit(X86_FEATURE_PSE, &edx); + clear_bit(X86_FEATURE_PSE36, &edx); +#else if ( v->domain->arch.ops->guest_paging_levels == PAGING_L2 ) -#endif { + if ( !v->domain->arch.hvm_domain.pae_enabled ) + clear_bit(X86_FEATURE_PAE, &edx); clear_bit(X86_FEATURE_PSE, &edx); - clear_bit(X86_FEATURE_PAE, &edx); clear_bit(X86_FEATURE_PSE36, &edx); } +#endif /* Clear out reserved bits. */ ecx &= ~SVM_VCPU_CPUID_L1_RESERVED; /* mask off reserved bits */ + clear_bit(X86_FEATURE_MWAIT & 31, &ecx); } #ifdef __i386__ else if ( input == 0x80000001 ) @@ -1462,7 +1468,7 @@ #endif /* Now arch.guest_table points to machine physical. */ - v->arch.guest_table = mk_pagetable(mfn << PAGE_SHIFT); + v->arch.guest_table = mk_pagetable((u64)mfn << PAGE_SHIFT); update_pagetables(v); HVM_DBG_LOG(DBG_LEVEL_VMMU, "New arch.guest_table = %lx", @@ -1601,7 +1607,7 @@ } old_base_mfn = pagetable_get_pfn(v->arch.guest_table); - v->arch.guest_table = mk_pagetable(mfn << PAGE_SHIFT); + v->arch.guest_table = mk_pagetable((u64)mfn << PAGE_SHIFT); if (old_base_mfn) put_page(mfn_to_page(old_base_mfn)); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |