On 07/07/2017 10:29, Christian Borntraeger wrote: > irq routing is rcu protected. Use the proper access functions. > Found by sparse > > virt/kvm/irqchip.c:233:13: warning: incorrect type in assignment (different address spaces) > virt/kvm/irqchip.c:233:13: expected struct kvm_irq_routing_table *old > virt/kvm/irqchip.c:233:13: got struct kvm_irq_routing_table [noderef] <asn:4>*irq_routing > > Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > --- > virt/kvm/irqchip.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/virt/kvm/irqchip.c b/virt/kvm/irqchip.c > index 31e40c9..b1286c4 100644 > --- a/virt/kvm/irqchip.c > +++ b/virt/kvm/irqchip.c > @@ -230,7 +230,7 @@ int kvm_set_irq_routing(struct kvm *kvm, > } > > mutex_lock(&kvm->irq_lock); > - old = kvm->irq_routing; > + old = rcu_dereference_protected(kvm->irq_routing, 1); > rcu_assign_pointer(kvm->irq_routing, new); > kvm_irq_routing_update(kvm); > kvm_arch_irq_routing_update(kvm); > Reviewed-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>