kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [kvm:queue 76/76] arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: sparse: incorrect type in argument 1 (different address spaces)
@ 2015-06-05 23:50 kbuild test robot
  2015-06-08  8:46 ` Paolo Bonzini
  0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2015-06-05 23:50 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: kbuild-all, Paolo Bonzini, kvm

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] <asn:4>*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] <asn:4>*irq_routing

vim +144 arch/x86/kvm/../../../virt/kvm/irqchip.c

   128			struct kvm_kernel_irq_routing_entry *e;
   129			struct hlist_node *n;
   130	
   131			hlist_for_each_entry_safe(e, n, &rt->map[i], link) {
   132				hlist_del(&e->link);
   133				kfree(e);
   134			}
   135		}
   136	
   137		kfree(rt);
   138	}
   139	
   140	void kvm_free_irq_routing(struct kvm *kvm)
   141	{
   142		/* Called only during vm destruction. Nobody can use the pointer
   143		   at this stage */
 > 144		free_irq_routing_table(kvm->irq_routing);
   145	}
   146	
   147	static int setup_routing_entry(struct kvm_irq_routing_table *rt,
   148				       struct kvm_kernel_irq_routing_entry *e,
   149				       const struct kvm_irq_routing_entry *ue)
   150	{
   151		int r = -EINVAL;
   152		struct kvm_kernel_irq_routing_entry *ei;

---
0-DAY kernel test infrastructure                Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [kvm:queue 76/76] arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: sparse: incorrect type in argument 1 (different address spaces)
  2015-06-05 23:50 [kvm:queue 76/76] arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: sparse: incorrect type in argument 1 (different address spaces) kbuild test robot
@ 2015-06-08  8:46 ` Paolo Bonzini
  0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2015-06-08  8:46 UTC (permalink / raw)
  To: kbuild test robot, Joerg Roedel; +Cc: kbuild-all, kvm



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] <asn:4>*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] <asn:4>*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

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-06-08  8:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-05 23:50 [kvm:queue 76/76] arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: sparse: incorrect type in argument 1 (different address spaces) kbuild test robot
2015-06-08  8:46 ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).