Am 09.10.2015 um 16:42 schrieb Paolo Bonzini:
> Christian, the question for you is towards the end...



[....]
> 
>> --- a/virt/kvm/irqchip.c
>> +++ b/virt/kvm/irqchip.c
>> @@ -144,11 +144,13 @@ static int setup_routing_entry(struct 
>> kvm_irq_routing_table *rt,
>>  
>>      /*
>>       * Do not allow GSI to be mapped to the same irqchip more than once.
>> -     * Allow only one to one mapping between GSI and MSI.
>> +     * Allow only one to one mapping between GSI and MSI/Hyper-V SINT.
>>       */
>>      hlist_for_each_entry(ei, &rt->map[ue->gsi], link)
>>              if (ei->type == KVM_IRQ_ROUTING_MSI ||
>>                  ue->type == KVM_IRQ_ROUTING_MSI ||
>> +                ei->type == KVM_IRQ_ROUTING_HV_SINT ||
>> +                ue->type == KVM_IRQ_ROUTING_HV_SINT ||
>>                  ue->u.irqchip.irqchip == ei->irqchip.irqchip)
>>                      return r;
> 
> Christian, what's the desired behavior for s390 adapter interrupts here?
>  Should this actually become
> 
>       if (ei->type != KVM_IRQ_ROUTING_IRQCHIP ||
>           ue->type != KVM_IRQ_ROUTING_IRQCHIP ||
>           ue->u.irqchip.irqchip == ei->irqchip.irqchip)

Hmm, this is the failure path if we already have one routing entry, Right?
This will work with virtio ccw as we only setup one route, but I am not
sure about the upcoming PCI irqfd support which might add a 2nd adapter
route.

Adding Conny, Jens,Not sure about PC, 
As soon as we wire up the PCI irgfd, we want to register a 2nd route for
the same irqchip via flic, which will also be of type 
KVM_IRQ_ROUTING_S390_ADAPTER. Correct?



Reply via email to