Re: [PATCH 3.16 31/72] KVM: x86: Manually calculate reserved bits when loading PDPTRS

From: Sean Christopherson
Date: Tue Dec 10 2019 - 11:27:35 EST


On Tue, Dec 10, 2019 at 04:16:44PM +0000, Ben Hutchings wrote:
> The 3.16, 4.4, and 4.9 branches have slightly different conditions in
> kvm_set_cr3():
>
> if (is_long_mode(vcpu)) {
> if (cr3 & CR3_L_MODE_RESERVED_BITS)
> return 1;
> } else if (is_pae(vcpu) && is_paging(vcpu) &&
> !load_pdptrs(vcpu, vcpu->arch.walk_mmu, cr3))
> return 1;
>
> So load_pdptrs() already won't be called if is_long_mode() returns
> true, and this fix shouldn't be needed.

Argh, glad you double checked! I looked at 3.16.y, but apparently I didn't
actually read the code...