lkml.org 
[lkml]   [2010]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 01/22] KVM: MMU: Check for root_level instead of long mode
    Date
    The walk_addr function checks for !is_long_mode in its 64
    bit version. But what is meant here is a check for pae
    paging. Change the condition to really check for pae paging
    so that it also works with nested nested paging.

    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    ---
    arch/x86/kvm/paging_tmpl.h | 4 ++--
    1 files changed, 2 insertions(+), 2 deletions(-)

    diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
    index d0cc07e..b07cec6 100644
    --- a/arch/x86/kvm/paging_tmpl.h
    +++ b/arch/x86/kvm/paging_tmpl.h
    @@ -128,7 +128,7 @@ walk:
    walker->level = vcpu->arch.mmu.root_level;
    pte = vcpu->arch.cr3;
    #if PTTYPE == 64
    - if (!is_long_mode(vcpu)) {
    + if (vcpu->arch.mmu.root_level == PT32E_ROOT_LEVEL) {
    pte = kvm_pdptr_read(vcpu, (addr >> 30) & 3);
    trace_kvm_mmu_paging_element(pte, walker->level);
    if (!is_present_gpte(pte))
    @@ -194,7 +194,7 @@ walk:
    (PTTYPE == 64 || is_pse(vcpu))) ||
    ((walker->level == PT_PDPE_LEVEL) &&
    is_large_pte(pte) &&
    - is_long_mode(vcpu))) {
    + vcpu->arch.mmu.root_level == PT64_ROOT_LEVEL)) {
    int lvl = walker->level;

    walker->gfn = gpte_to_gfn_lvl(pte, lvl);
    --
    1.7.0.4



    \
     
     \ /
      Last update: 2010-04-27 12:41    [W:0.026 / U:30.320 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site