From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: Re: [PATCH] KVM: Avoid using vmx instruction directly Date: Thu, 9 Nov 2006 14:29:41 +0100 Message-ID: <200611091429.42040.arnd@arndb.de> References: <20061109110852.A6B712500F7@cleopatra.q> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Cc: akpm-3NddpPZAyC0@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Return-path: To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org In-Reply-To: <20061109110852.A6B712500F7@cleopatra.q> Content-Disposition: inline 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 On Thursday 09 November 2006 12:08, Avi Kivity wrote: > Index: linux-2.6/drivers/kvm/kvm_main.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- linux-2.6.orig/drivers/kvm/kvm_main.c > +++ linux-2.6/drivers/kvm/kvm_main.c > @@ -369,8 +369,8 @@ static void vmcs_clear(struct vmcs *vmcs > =A0=A0=A0=A0=A0=A0=A0=A0u64 phys_addr =3D __pa(vmcs); > =A0=A0=A0=A0=A0=A0=A0=A0u8 error; > =A0 > -=A0=A0=A0=A0=A0=A0=A0asm volatile ("vmclear %1; setna %0" > -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0 =A0 =A0 : "=3Dm"(error= ) : "m"(phys_addr) : "cc", "memory" ); > +=A0=A0=A0=A0=A0=A0=A0asm volatile (ASM_VMX_VMCLEAR_RAX "; setna %0" > +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0 =A0 =A0 : "=3Dg"(error= ) : "a"(&phys_addr) : "cc", "memory" ); > =A0=A0=A0=A0=A0=A0=A0=A0if (error) > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0printk(KERN_ERR "kvm: vmc= lear fail: %p/%llx\n", > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =A0 =A0 =A0 vmcs, phys_a= ddr); I'm not an expert on inline assembly, but don't you need an extra '"m" (phys_addr)' to make sure that gcc actually puts the variable on the stack instead of passing a NULL pointer as '"a"(&phys_addr)'? Arnd <>< ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easi= er Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D120709&bid=3D263057&dat=3D1= 21642