All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marcelo Tosatti <mtosatti@redhat.com>
To: Andy Honig <ahonig@google.com>, Gleb Natapov <gleb@redhat.com>
Cc: kvm <kvm@vger.kernel.org>
Subject: KVM: x86: relax MSR_KVM_SYSTEM_TIME alignment check
Date: Fri, 22 Mar 2013 16:14:07 -0300	[thread overview]
Message-ID: <20130322191407.GA23681@amt.cnet> (raw)


RHEL5 i386 guests register non 32-byte aligned addresses:

kvm-clock: cpu 1, msr 0:3018aa5, secondary cpu clock
kvm-clock: cpu 2, msr 0:301f8e9, secondary cpu clock
kvm-clock: cpu 3, msr 0:302672d, secondary cpu clock

Check for an address+len that would cross page boundary
instead.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index f19ac0a..ad36d386 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1952,8 +1952,9 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
 
 		gpa_offset = data & ~(PAGE_MASK | 1);
 
-		/* Check that the address is 32-byte aligned. */
-		if (gpa_offset & (sizeof(struct pvclock_vcpu_time_info) - 1))
+		/* Check that address+len does not cross page boundary */
+		if ((gpa_offset + sizeof(struct pvclock_vcpu_time_info) - 1)
+		    & PAGE_MASK)
 			break;
 
 		if (kvm_gfn_to_hva_cache_init(vcpu->kvm,

             reply	other threads:[~2013-03-22 19:14 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-22 19:14 Marcelo Tosatti [this message]
2013-03-22 19:21 ` KVM: x86: relax MSR_KVM_SYSTEM_TIME alignment check Gleb Natapov
2013-03-22 19:47   ` Marcelo Tosatti
2013-03-22 21:19     ` KVM: x86: drop alignment checks from KVM_MSR_SYSTEM_TIME address Marcelo Tosatti
2013-03-22 21:57       ` Gleb Natapov
2013-03-23  0:17         ` Andrew Honig
2013-03-23 14:12           ` Gleb Natapov
2013-04-11 16:05             ` Marcelo Tosatti

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130322191407.GA23681@amt.cnet \
    --to=mtosatti@redhat.com \
    --cc=ahonig@google.com \
    --cc=gleb@redhat.com \
    --cc=kvm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.