On 08/30/2017 06:06 PM, David Hildenbrand wrote: > Move the real logic that always has to be executed out of the > WARN_ON_ONCE. The WARN_ON_ONCE macro seems to be clever enough to not require this, but it is certainly cleaner. There is a similar construct for the pfault interrupts in kvm-s390.c which might also want to see such a cleanup. In the future we might want to modify the interrupt code to not make any allocation at all so that we cannot fail. But anyway, applied. > > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> > --- > arch/s390/kvm/interrupt.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c > index a619ddae610d..a832ad031cee 100644 > --- a/arch/s390/kvm/interrupt.c > +++ b/arch/s390/kvm/interrupt.c > @@ -2479,6 +2479,7 @@ void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu, > struct kvm_s390_mchk_info *mchk; > union mci mci; > __u64 cr14 = 0; /* upper bits are not used */ > + int rc; > > mci.val = mcck_info->mcic; > if (mci.sr) > @@ -2496,12 +2497,13 @@ void kvm_s390_reinject_machine_check(struct kvm_vcpu *vcpu, > if (mci.ck) { > /* Inject the floating machine check */ > inti.type = KVM_S390_MCHK; > - WARN_ON_ONCE(__inject_vm(vcpu->kvm, &inti)); > + rc = __inject_vm(vcpu->kvm, &inti); > } else { > /* Inject the machine check to specified vcpu */ > irq.type = KVM_S390_MCHK; > - WARN_ON_ONCE(kvm_s390_inject_vcpu(vcpu, &irq)); > + rc = kvm_s390_inject_vcpu(vcpu, &irq); > } > + WARN_ON_ONCE(rc); > } > > int kvm_set_routing_entry(struct kvm *kvm, >