linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] KVM: x86: restrict maximal physical address
@ 2016-11-25 14:51 Radim Krčmář
  2016-11-25 15:11 ` David Hildenbrand
  2016-11-25 16:10 ` Paolo Bonzini
  0 siblings, 2 replies; 8+ messages in thread
From: Radim Krčmář @ 2016-11-25 14:51 UTC (permalink / raw)
  To: linux-kernel, kvm; +Cc: Paolo Bonzini

The guest could have configured a maximal physical address that exceeds
the host.  Prevent that situation as it could easily lead to a bug.

Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
---
 arch/x86/kvm/cpuid.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 25f0f15fab1a..aed910e9fbed 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -136,7 +136,13 @@ int kvm_update_cpuid(struct kvm_vcpu *vcpu)
 		((best->eax & 0xff00) >> 8) != 0)
 		return -EINVAL;
 
-	/* Update physical-address width */
+
+	/*
+	 * Update physical-address width.
+	 * Make sure that it does not exceed hardware capabilities.
+	 */
+	if (cpuid_query_maxphyaddr(vcpu) > boot_cpu_data.x86_phys_bits)
+		return -EINVAL;
 	vcpu->arch.maxphyaddr = cpuid_query_maxphyaddr(vcpu);
 
 	kvm_pmu_refresh(vcpu);
-- 
2.10.2

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-11-29 16:53 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-25 14:51 [PATCH] KVM: x86: restrict maximal physical address Radim Krčmář
2016-11-25 15:11 ` David Hildenbrand
2016-11-25 16:14   ` Radim Krčmář
2016-11-25 16:43     ` David Hildenbrand
2016-11-29 16:53       ` Radim Krčmář
2016-11-25 16:10 ` Paolo Bonzini
2016-11-25 16:57   ` Radim Krčmář
2016-11-25 17:21     ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).