From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH] KVM: Fix EPT identity IOCTL on 32pae Date: Mon, 03 Aug 2009 13:48:22 +0200 Message-ID: <4A76CE86.3010901@siemens.com> References: <1249280247-6732-1-git-send-email-sheng@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Cc: Avi Kivity , Marcelo Tosatti , kvm@vger.kernel.org To: Sheng Yang Return-path: Received: from thoth.sbs.de ([192.35.17.2]:22305 "EHLO thoth.sbs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751890AbZHCLsn (ORCPT ); Mon, 3 Aug 2009 07:48:43 -0400 In-Reply-To: <1249280247-6732-1-git-send-email-sheng@linux.intel.com> Sender: kvm-owner@vger.kernel.org List-ID: Sheng Yang wrote: > Copy u64 from guest result in chaos. Not doing so, while the ABI as been defined as u64, will surely result in chaos as well - just different one. I'm recalling the problems Alex recently ran into on big-endian PowerPC and sizeof(userland_long) != sizeof(kernel_long). > > Also fix a mistake of still using old macro rather than new variable(). Two patches then? > > Signed-off-by: Sheng Yang > --- > arch/x86/kvm/vmx.c | 2 +- > arch/x86/kvm/x86.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 7931c72..c5aaa1b 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -2199,7 +2199,7 @@ static int alloc_identity_pagetable(struct kvm *kvm) > goto out; > > kvm->arch.ept_identity_pagetable = gfn_to_page(kvm, > - VMX_EPT_IDENTITY_PAGETABLE_ADDR >> PAGE_SHIFT); > + kvm->arch.ept_identity_map_addr >> PAGE_SHIFT); > out: > up_write(&kvm->slots_lock); > return r; > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 2539e9a..977b705 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -2178,7 +2178,7 @@ long kvm_arch_vm_ioctl(struct file *filp, > goto out; > break; > case KVM_SET_IDENTITY_MAP_ADDR: { > - u64 ident_addr; > + unsigned long ident_addr; > > r = -EFAULT; > if (copy_from_user(&ident_addr, argp, sizeof ident_addr)) I don't know what as to be fixed here, but you must stick to the ABI. Maybe you just want to convert u64 -> ulong afterwards? Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux