diff mbox

[kvm:queue,76/76] arch/x86/kvm/../../../virt/kvm/irqchip.c:144:35: sparse: incorrect type in argument 1 (different address spaces)

Message ID 5575566D.5090200@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Paolo Bonzini June 8, 2015, 8:46 a.m. UTC
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:



Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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,