Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f85c758d authored by Dan Carpenter's avatar Dan Carpenter Committed by Radim Krčmář
Browse files

KVM: x86: masking out upper bits



kvm_read_cr3() returns an unsigned long and gfn is a u64.  We intended
to mask out the bottom 5 bits but because of the type issue we mask the
top 32 bits as well.  I don't know if this is a real problem, but it
causes static checker warnings.

Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
parent 5771a8c0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -597,8 +597,8 @@ bool pdptrs_changed(struct kvm_vcpu *vcpu)
		      (unsigned long *)&vcpu->arch.regs_avail))
		return true;

	gfn = (kvm_read_cr3(vcpu) & ~31u) >> PAGE_SHIFT;
	offset = (kvm_read_cr3(vcpu) & ~31u) & (PAGE_SIZE - 1);
	gfn = (kvm_read_cr3(vcpu) & ~31ul) >> PAGE_SHIFT;
	offset = (kvm_read_cr3(vcpu) & ~31ul) & (PAGE_SIZE - 1);
	r = kvm_read_nested_guest_page(vcpu, gfn, pdpte, offset, sizeof(pdpte),
				       PFERR_USER_MASK | PFERR_WRITE_MASK);
	if (r < 0)