On 05.11.18 17:55, Pierre Morel wrote:
+ /* wake-up a vcpu of the kvm this gisa belongs to */
+ kvm = container_of(gisa, struct sie_page2, gisa)->kvm;
+ __floating_irq_kick(kvm, KVM_S390_INT_IO(1, 0, 0, 0));
Do we really need to insert a floating interrupt?
Wouldn't a simple kvm_s390_vcpu_wakeup() after choosing the vcpu be
enough?
We need to find a suitable vcpu before calling kvm_s390_vcpu_wakeup().
That is exactly what __floating_irq_kick() does for us, right?
Yes right, it is just an optimization, we have two unnecessary tests,
one for interrupt type and another for GISA availability.
I will factor out a function __find_vcpu_for_irq()
It is *not* inserting a floating interruption.
+ }
+
+ if (gisa_to_nullify)
+ nullify_gisa(gisa_to_nullify);