Due to a missing barrier, it was theoretically possible that a vCPU being created concurrently with enabling KVM_CAP_S390_USER_OPEREXEC would end up with the capability not enabled. Fix by using WRITE_ONCE(), which is enough on s390. Fixes: 8e8678e740ec ("KVM: s390: Add capability that forwards operation exceptions") Signed-off-by: Claudio Imbrenda --- arch/s390/kvm/kvm-s390.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index 4a6d903e3523..784f7d9c79c7 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -955,7 +955,7 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap) break; case KVM_CAP_S390_USER_OPEREXEC: VM_EVENT(kvm, 3, "%s", "ENABLE: CAP_S390_USER_OPEREXEC"); - kvm->arch.user_operexec = 1; + WRITE_ONCE(kvm->arch.user_operexec, 1); icpt_operexc_on_all_vcpus(kvm); r = 0; break; -- 2.55.0