From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH, -next] KVM: x86: Fix 32-bit host build warning Date: Thu, 22 Oct 2009 12:40:57 +0200 Message-ID: <4AE036B9.7080302@siemens.com> References: <4ADDA9CE.30408@siemens.com> <20091020170157.GA14309@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Avi Kivity , kvm-devel , Ed Swierk To: Marcelo Tosatti Return-path: Received: from thoth.sbs.de ([192.35.17.2]:18430 "EHLO thoth.sbs.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753116AbZJVKlI (ORCPT ); Thu, 22 Oct 2009 06:41:08 -0400 In-Reply-To: <20091020170157.GA14309@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: Marcelo Tosatti wrote: > On Tue, Oct 20, 2009 at 02:15:10PM +0200, Jan Kiszka wrote: >> Fixes "cast to pointer from integer of different size" on 32-bit hosts >> and applies a micro-refactoring. >> >> Signed-off-by: Jan Kiszka > > Applied, thanks. Mmpf, sorry, please replace that patch (provided it is still only in -next) with the actually tested version below. There was one further typecast missing. Jan -----------> Fixes "cast to pointer from integer of different size" on 32-bit hosts and applies a micro-refactoring. Signed-off-by: Jan Kiszka --- arch/x86/kvm/x86.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 3270b3b..5ad65b4 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -841,11 +841,12 @@ static int set_msr_mce(struct kvm_vcpu *vcpu, u32 msr, u64 data) static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data) { + struct kvm *kvm = vcpu->kvm; int lm = is_long_mode(vcpu); - u8 *blob_addr = lm ? (u8 *)vcpu->kvm->arch.xen_hvm_config.blob_addr_64 - : (u8 *)vcpu->kvm->arch.xen_hvm_config.blob_addr_32; - u8 blob_size = lm ? vcpu->kvm->arch.xen_hvm_config.blob_size_64 - : vcpu->kvm->arch.xen_hvm_config.blob_size_32; + u8 *blob_addr = lm ? (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_64 + : (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_32; + u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64 + : kvm->arch.xen_hvm_config.blob_size_32; u32 page_num = data & ~PAGE_MASK; u64 page_addr = data & PAGE_MASK; u8 *page; @@ -861,7 +862,7 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data) r = -EFAULT; if (copy_from_user(page, blob_addr + (page_num * PAGE_SIZE), PAGE_SIZE)) goto out_free; - if (kvm_write_guest(vcpu->kvm, page_addr, page, PAGE_SIZE)) + if (kvm_write_guest(kvm, page_addr, page, PAGE_SIZE)) goto out_free; r = 0; out_free: