From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH] KVM: VMX: Fix invalid opcode of VPID Date: Tue, 29 Jan 2008 10:53:01 +0200 Message-ID: <479EE96D.9030900@qumranet.com> References: <200801291641.55494.sheng.yang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: "Yang, Sheng" Return-path: In-Reply-To: <200801291641.55494.sheng.yang-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Yang, Sheng wrote: > From db6524fb36bbf1f297ae171f18de382c32ed6840 Mon Sep 17 00:00:00 2001 > From: Sheng Yang > Date: Tue, 29 Jan 2008 08:17:57 +0800 > Subject: [PATCH] KVM: VMX: Fix invalid opcode of VPID > > Add the missing "memory" in VPID clobber list, otherwise it would cause > invalid opcode on host. > > Signed-off-by: Sheng Yang > --- > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 00a00e4..3d8949a 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -238,7 +238,7 @@ static inline void __invvpid(int ext, u16 vpid, gva_t gva) > asm volatile (ASM_VMX_INVVPID > /* CF==1 or ZF==1 --> rc = -1 */ > "; ja 1f ; ud2 ; 1:" > - : : "a"(&operand), "c"(ext) : "cc"); > + : : "a"(&operand), "c"(ext) : "cc", "memory"); > } > > static struct kvm_msr_entry *find_msr_entry(struct vcpu_vmx *vmx, u32 msr) > Ah, yes. That's my fault -- since invvpid doesn't modify memory, I assumed a memory clobber wan't necessary, but it is since otherwise gcc doesn't force the operand into memory. Applied. -- error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/