KVM: selftests: Move KVM_CREATE_DEVICE_TEST code to separate helper
authorSean Christopherson <seanjc@google.com>
Thu, 17 Feb 2022 20:16:20 +0000 (12:16 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Sat, 11 Jun 2022 15:46:21 +0000 (11:46 -0400)
Move KVM_CREATE_DEVICE_TEST to its own helper, identifying "real" versus
"test" device creation based on a hardcoded boolean buried in the middle
of a param list is painful for readers.

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

index 4928cb4..18054b9 100644 (file)
@@ -649,24 +649,24 @@ int test_kvm_device(uint32_t gic_dev_type)
        v.vm = vm_create_default_with_vcpus(NR_VCPUS, 0, 0, guest_code, NULL);
 
        /* try to create a non existing KVM device */
-       ret = _kvm_create_device(v.vm, 0, true, &fd);
+       ret = __kvm_test_create_device(v.vm, 0);
        TEST_ASSERT(ret && errno == ENODEV, "unsupported device");
 
        /* trial mode */
-       ret = _kvm_create_device(v.vm, gic_dev_type, true, &fd);
+       ret = __kvm_test_create_device(v.vm, gic_dev_type);
        if (ret)
                return ret;
        v.gic_fd = kvm_create_device(v.vm, gic_dev_type);
 
-       ret = _kvm_create_device(v.vm, gic_dev_type, false, &fd);
+       ret = __kvm_create_device(v.vm, gic_dev_type, &fd);
        TEST_ASSERT(ret && errno == EEXIST, "create GIC device twice");
 
        /* try to create the other gic_dev_type */
        other = VGIC_DEV_IS_V2(gic_dev_type) ? KVM_DEV_TYPE_ARM_VGIC_V3
                                             : KVM_DEV_TYPE_ARM_VGIC_V2;
 
-       if (!_kvm_create_device(v.vm, other, true, &fd)) {
-               ret = _kvm_create_device(v.vm, other, false, &fd);
+       if (!__kvm_test_create_device(v.vm, other)) {
+               ret = __kvm_test_create_device(v.vm, other);
                TEST_ASSERT(ret && errno == EINVAL,
                                "create GIC device while other version exists");
        }
index 6e1926a..8795f46 100644 (file)
@@ -484,7 +484,8 @@ void vcpu_args_set(struct kvm_vm *vm, uint32_t vcpuid, unsigned int num, ...);
 
 int _kvm_device_check_attr(int dev_fd, uint32_t group, uint64_t attr);
 int kvm_device_check_attr(int dev_fd, uint32_t group, uint64_t attr);
-int _kvm_create_device(struct kvm_vm *vm, uint64_t type, bool test, int *fd);
+int __kvm_test_create_device(struct kvm_vm *vm, uint64_t type);
+int __kvm_create_device(struct kvm_vm *vm, uint64_t type, int *fd);
 int kvm_create_device(struct kvm_vm *vm, uint64_t type);
 int _kvm_device_access(int dev_fd, uint32_t group, uint64_t attr,
                       void *val, bool write);
index c34f0f1..74b4bca 100644 (file)
@@ -51,8 +51,7 @@ int vgic_v3_setup(struct kvm_vm *vm, unsigned int nr_vcpus, uint32_t nr_irqs,
                        nr_vcpus, nr_vcpus_created);
 
        /* Distributor setup */
-       if (_kvm_create_device(vm, KVM_DEV_TYPE_ARM_VGIC_V3,
-                              false, &gic_fd) != 0)
+       if (__kvm_create_device(vm, KVM_DEV_TYPE_ARM_VGIC_V3, &gic_fd))
                return -1;
 
        kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_NR_IRQS,
index cb2e42a..9c0122b 100644 (file)
@@ -1629,14 +1629,25 @@ int kvm_device_check_attr(int dev_fd, uint32_t group, uint64_t attr)
        return ret;
 }
 
-int _kvm_create_device(struct kvm_vm *vm, uint64_t type, bool test, int *fd)
+int __kvm_test_create_device(struct kvm_vm *vm, uint64_t type)
 {
-       struct kvm_create_device create_dev;
+       struct kvm_create_device create_dev = {
+               .type = type,
+               .flags = KVM_CREATE_DEVICE_TEST,
+       };
+
+       return __vm_ioctl(vm, KVM_CREATE_DEVICE, &create_dev);
+}
+
+int __kvm_create_device(struct kvm_vm *vm, uint64_t type, int *fd)
+{
+       struct kvm_create_device create_dev = {
+               .type = type,
+               .fd = -1,
+               .flags = 0,
+       };
        int ret;
 
-       create_dev.type = type;
-       create_dev.fd = -1;
-       create_dev.flags = test ? KVM_CREATE_DEVICE_TEST : 0;
        ret = __vm_ioctl(vm, KVM_CREATE_DEVICE, &create_dev);
        *fd = create_dev.fd;
        return ret;
@@ -1646,7 +1657,7 @@ int kvm_create_device(struct kvm_vm *vm, uint64_t type)
 {
        int fd, ret;
 
-       ret = _kvm_create_device(vm, type, false, &fd);
+       ret = __kvm_create_device(vm, type, &fd);
 
        TEST_ASSERT(!ret, "KVM_CREATE_DEVICE IOCTL failed, rc: %i errno: %i", ret, errno);
        return fd;