lkml.org 
[lkml]   [2009]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 28/30] KVM: is_long_mode() should check for EFER.LMA
    Date
    From: Amit Shah <amit.shah@qumranet.com>

    is_long_mode currently checks the LongModeEnable bit in
    EFER instead of the LongModeActive bit. This is wrong, but
    we survived this till now since it wasn't triggered. This
    breaks guests that go from long mode to compatibility mode.

    This is noticed on a solaris guest and fixes bug #1842160

    Signed-off-by: Amit Shah <amit.shah@qumranet.com>
    Signed-off-by: Avi Kivity <avi@qumranet.com>
    ---
    arch/x86/kvm/mmu.h | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/arch/x86/kvm/mmu.h b/arch/x86/kvm/mmu.h
    index 258e5d5..eaab214 100644
    --- a/arch/x86/kvm/mmu.h
    +++ b/arch/x86/kvm/mmu.h
    @@ -54,7 +54,7 @@ static inline int kvm_mmu_reload(struct kvm_vcpu *vcpu)
    static inline int is_long_mode(struct kvm_vcpu *vcpu)
    {
    #ifdef CONFIG_X86_64
    - return vcpu->arch.shadow_efer & EFER_LME;
    + return vcpu->arch.shadow_efer & EFER_LMA;
    #else
    return 0;
    #endif
    --
    1.6.0.6


    \
     
     \ /
      Last update: 2009-02-28 02:55    [W:4.216 / U:1.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site