Merge tag 's390-5.16-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[linux-2.6-microblaze.git] / arch / s390 / kvm / interrupt.c
index 80971e5..c3bd993 100644 (file)
@@ -3053,13 +3053,14 @@ static void __airqs_kick_single_vcpu(struct kvm *kvm, u8 deliverable_mask)
        int vcpu_idx, online_vcpus = atomic_read(&kvm->online_vcpus);
        struct kvm_s390_gisa_interrupt *gi = &kvm->arch.gisa_int;
        struct kvm_vcpu *vcpu;
+       u8 vcpu_isc_mask;
 
        for_each_set_bit(vcpu_idx, kvm->arch.idle_mask, online_vcpus) {
                vcpu = kvm_get_vcpu(kvm, vcpu_idx);
                if (psw_ioint_disabled(vcpu))
                        continue;
-               deliverable_mask &= (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
-               if (deliverable_mask) {
+               vcpu_isc_mask = (u8)(vcpu->arch.sie_block->gcr[6] >> 24);
+               if (deliverable_mask & vcpu_isc_mask) {
                        /* lately kicked but not yet running */
                        if (test_and_set_bit(vcpu_idx, gi->kicked_mask))
                                return;