From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [kvm:queue 76/76] arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: sparse: incorrect type in argument 1 (different address spaces) Date: Mon, 08 Jun 2015 10:46:37 +0200 Message-ID: <5575566D.5090200@redhat.com> References: <201506060731.ugE5xMRv%fengguang.wu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: kbuild-all@01.org, kvm@vger.kernel.org To: kbuild test robot , Joerg Roedel Return-path: Received: from mx1.redhat.com ([209.132.183.28]:54886 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751175AbbFHIql (ORCPT ); Mon, 8 Jun 2015 04:46:41 -0400 In-Reply-To: <201506060731.ugE5xMRv%fengguang.wu@intel.com> Sender: kvm-owner@vger.kernel.org List-ID: On 06/06/2015 01:50, kbuild test robot wrote: > tree: git://git.kernel.org/pub/scm/virt/kvm/kvm.git queue > head: 6aa5e7eb06cff8d317328a0c4696b5f635ba6be3 > commit: 6aa5e7eb06cff8d317328a0c4696b5f635ba6be3 [76/76] kvm: irqchip: Break up high order allocations of kvm_irq_routing_table > reproduce: > # apt-get install sparse > git checkout 6aa5e7eb06cff8d317328a0c4696b5f635ba6be3 > make ARCH=x86_64 allmodconfig > make C=1 CF=-D__CHECK_ENDIAN__ > > > sparse warnings: (new ones prefixed by >>) > >>> arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: sparse: incorrect type in argument 1 (different address spaces) > arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: expected struct kvm_irq_routing_table *rt > arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: got struct kvm_irq_routing_table [noderef] *irq_routing > arch/x86/kvm/../../../virt/kvm/irqchip.c:224:13: sparse: incorrect type in assignment (different address spaces) > arch/x86/kvm/../../../virt/kvm/irqchip.c:224:13: expected struct kvm_irq_routing_table *old > arch/x86/kvm/../../../virt/kvm/irqchip.c:224:13: got struct kvm_irq_routing_table [noderef] *irq_routing I'm squashing this: diff --git a/virt/kvm/irqchip.c b/virt/kvm/irqchip.c index b56168fe018c..21c14244f4c4 100644 --- a/virt/kvm/irqchip.c +++ b/virt/kvm/irqchip.c @@ -141,7 +141,8 @@ void kvm_free_irq_routing(struct kvm *kvm) { /* Called only during vm destruction. Nobody can use the pointer at this stage */ - free_irq_routing_table(kvm->irq_routing); + struct kvm_irq_routing_table *rt = rcu_access_pointer(kvm->irq_routing); + free_irq_routing_table(rt); } static int setup_routing_entry(struct kvm_irq_routing_table *rt, Paolo