KVM: selftests: Fix buggy-but-benign check in test_v3_new_redist_regions()
authorSean Christopherson <seanjc@google.com>
Wed, 23 Feb 2022 22:52:12 +0000 (14:52 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Sat, 11 Jun 2022 14:14:35 +0000 (10:14 -0400)
Update 'ret' with the return value of _kvm_device_access() prior to
asserting that ret is non-zero.  In the current code base, the flaw is
benign as 'ret' is guaranteed to be -EBUSY from the previous run_vcpu(),
which also means that errno==EBUSY prior to _kvm_device_access(), thus
the "errno == EFAULT" part of the assert means that a false negative is
impossible (unless the kernel is being truly mean and spuriously setting
errno=EFAULT while returning success).

Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
tools/testing/selftests/kvm/aarch64/vgic_init.c

index 34379c9..0f046e3 100644 (file)
@@ -381,8 +381,8 @@ static void test_v3_new_redist_regions(void)
        v = vm_gic_create_with_vcpus(KVM_DEV_TYPE_ARM_VGIC_V3, NR_VCPUS);
        subtest_v3_redist_regions(&v);
 
-       _kvm_device_access(v.gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
-                         KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, dummy, true);
+       ret = _kvm_device_access(v.gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
+                                KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, dummy, true);
        TEST_ASSERT(ret && errno == EFAULT,
                    "register a third region allowing to cover the 4 vcpus");