All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Yang Zhang <yang.z.zhang@intel.com>
Cc: xen-devel@lists.xensource.com, eddie.dong@intel.com,
	JBeulich@suse.com, jun.nakajima@intel.com
Subject: Re: [PATCH 2/3] Nested VMX: Clear bit 31 of IA32_VMX_BASIC MSR
Date: Thu, 5 Sep 2013 11:12:43 +0100	[thread overview]
Message-ID: <5228591B.7080409@citrix.com> (raw)
In-Reply-To: <1378349840-20186-3-git-send-email-yang.z.zhang@intel.com>

On 05/09/13 03:57, Yang Zhang wrote:
> From: Yang Zhang <yang.z.zhang@Intel.com>
>
> The bit 31 of revision_id will set to 1 if vmcs shadowing enabled. And
> according intel SDM, the bit 31 of IA32_VMX_BASIC MSR is always 0. So we
> cannot set low 32 bit of IA32_VMX_BASIC to revision_id directly. Must clear
> the bit 31 to 0.
>
> Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
> ---
>  xen/arch/x86/hvm/vmx/vvmx.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c
> index 2e0b7f7..8571002 100644
> --- a/xen/arch/x86/hvm/vmx/vvmx.c
> +++ b/xen/arch/x86/hvm/vmx/vvmx.c
> @@ -1846,7 +1846,7 @@ int nvmx_msr_read_intercept(unsigned int msr, u64 *msr_content)
>      switch (msr) {
>      case MSR_IA32_VMX_BASIC:
>          data = (host_data & (~0ul << 32)) |
> -               ((v->arch.hvm_vmx.vmcs)->vmcs_revision_id);
> +               ((v->arch.hvm_vmx.vmcs)->vmcs_revision_id & ~(1ul << 31));

What are the chances of vmcs_revision_id extending beyond 32 bits?

The SDM states that the bottom 31 bits of IA32_VMX_BASIC shall be the
bottom 31 bits of the revision id, so

(v->arch.hvm_vmx.vmcs->vmcs_revision_id & 0x7fffffff);

would seem more obvious.  Also, the brackets were superfluous.

~Andrew

>          break;
>      case MSR_IA32_VMX_PINBASED_CTLS:
>      case MSR_IA32_VMX_TRUE_PINBASED_CTLS:

  reply	other threads:[~2013-09-05 10:12 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-05  2:57 [PATCH 0/3] Nested VMX: fix bugs during reading VMX MSRs Yang Zhang
2013-09-05  2:57 ` [PATCH 1/3] Nested VMX: Check VMX capability before read VMX related MSRs Yang Zhang
2013-09-05  8:35   ` Jan Beulich
2013-09-05  9:49   ` Andrew Cooper
2013-09-05  2:57 ` [PATCH 2/3] Nested VMX: Clear bit 31 of IA32_VMX_BASIC MSR Yang Zhang
2013-09-05 10:12   ` Andrew Cooper [this message]
2013-09-05 10:16     ` Zhang, Yang Z
2013-09-05  2:57 ` [PATCH 3/3] Nested VMX: Fix IA32_VMX_CR4_FIXED1 msr emulation Yang Zhang
2013-09-05  8:46   ` Jan Beulich
2013-09-05  9:05     ` Zhang, Yang Z
2013-09-05  9:36       ` Jan Beulich
2013-09-05 10:28         ` Zhang, Yang Z

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=5228591B.7080409@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=JBeulich@suse.com \
    --cc=eddie.dong@intel.com \
    --cc=jun.nakajima@intel.com \
    --cc=xen-devel@lists.xensource.com \
    --cc=yang.z.zhang@intel.com \
    /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.