lkml.org 
[lkml]   [2020]   [Jul]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 120/166] KVM: x86: bit 8 of non-leaf PDPEs is not reserved
    Date
    From: Paolo Bonzini <pbonzini@redhat.com>

    commit 5ecad245de2ae23dc4e2dbece92f8ccfbaed2fa7 upstream.

    Bit 8 would be the "global" bit, which does not quite make sense for non-leaf
    page table entries. Intel ignores it; AMD ignores it in PDEs and PDPEs, but
    reserves it in PML4Es.

    Probably, earlier versions of the AMD manual documented it as reserved in PDPEs
    as well, and that behavior made it into KVM as well as kvm-unit-tests; fix it.

    Cc: stable@vger.kernel.org
    Reported-by: Nadav Amit <namit@vmware.com>
    Fixes: a0c0feb57992 ("KVM: x86: reserve bit 8 of non-leaf PDPEs and PML4Es in 64-bit mode on AMD", 2014-09-03)
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/x86/kvm/mmu/mmu.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/arch/x86/kvm/mmu/mmu.c
    +++ b/arch/x86/kvm/mmu/mmu.c
    @@ -4484,7 +4484,7 @@ __reset_rsvds_bits_mask(struct kvm_vcpu
    nonleaf_bit8_rsvd | rsvd_bits(7, 7) |
    rsvd_bits(maxphyaddr, 51);
    rsvd_check->rsvd_bits_mask[0][2] = exb_bit_rsvd |
    - nonleaf_bit8_rsvd | gbpages_bit_rsvd |
    + gbpages_bit_rsvd |
    rsvd_bits(maxphyaddr, 51);
    rsvd_check->rsvd_bits_mask[0][1] = exb_bit_rsvd |
    rsvd_bits(maxphyaddr, 51);

    \
     
     \ /
      Last update: 2020-07-14 20:58    [W:7.467 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site