static void sca_clear_ext_call(struct kvm_vcpu *vcpu)
 {
-       int rc, expect;
-
        if (!kvm_s390_use_sca_entries())
                return;
        kvm_s390_clear_cpuflags(vcpu, CPUSTAT_ECALL_PEND);
                struct esca_block *sca = vcpu->kvm->arch.sca;
                union esca_sigp_ctrl *sigp_ctrl =
                        &(sca->cpu[vcpu->vcpu_id].sigp_ctrl);
-               union esca_sigp_ctrl old;
 
-               old = READ_ONCE(*sigp_ctrl);
-               expect = old.value;
-               rc = cmpxchg(&sigp_ctrl->value, old.value, 0);
+               WRITE_ONCE(sigp_ctrl->value, 0);
        } else {
                struct bsca_block *sca = vcpu->kvm->arch.sca;
                union bsca_sigp_ctrl *sigp_ctrl =
                        &(sca->cpu[vcpu->vcpu_id].sigp_ctrl);
-               union bsca_sigp_ctrl old;
 
-               old = READ_ONCE(*sigp_ctrl);
-               expect = old.value;
-               rc = cmpxchg(&sigp_ctrl->value, old.value, 0);
+               WRITE_ONCE(sigp_ctrl->value, 0);
        }
        read_unlock(&vcpu->kvm->arch.sca_lock);
-       WARN_ON(rc != expect); /* cannot clear? */
 }
 
 int psw_extint_disabled(struct kvm_vcpu *vcpu)