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-08 Thread Paolo Bonzini


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
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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 Thread kbuild test robot
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 infrastructureOpen Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
--
To unsubscribe from this list: send the line unsubscribe kvm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html