KVM: arm64: selftests: Finish generalizing get-reg-list
authorAndrew Jones <ajones@ventanamicro.com>
Tue, 25 Jul 2023 08:41:33 +0000 (16:41 +0800)
committerAnup Patel <anup@brainfault.org>
Wed, 9 Aug 2023 06:45:12 +0000 (12:15 +0530)
Add some unfortunate #ifdeffery to ensure the common get-reg-list.c
can be compiled and run with other architectures. The next
architecture to support get-reg-list should now only need to provide
$(ARCH_DIR)/get-reg-list.c where arch-specific print_reg() and
vcpu_configs[] get defined.

Signed-off-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Haibo Xu <haibo1.xu@intel.com>
Signed-off-by: Anup Patel <anup@brainfault.org>
tools/testing/selftests/kvm/get-reg-list.c

index a29e548643d11c0f853782f01be1a2aedb3ecefd..853cbf470da2f6ad6f154d03efaba32835a019c6 100644 (file)
@@ -104,6 +104,7 @@ void __weak print_reg(const char *prefix, __u64 id)
        printf("\t0x%llx,\n", id);
 }
 
+#ifdef __aarch64__
 static void prepare_vcpu_init(struct vcpu_reg_list *c, struct kvm_vcpu_init *init)
 {
        struct vcpu_reg_sublist *s;
@@ -126,6 +127,25 @@ static void finalize_vcpu(struct kvm_vcpu *vcpu, struct vcpu_reg_list *c)
        }
 }
 
+static struct kvm_vcpu *vcpu_config_get_vcpu(struct vcpu_reg_list *c, struct kvm_vm *vm)
+{
+       struct kvm_vcpu_init init = { .target = -1, };
+       struct kvm_vcpu *vcpu;
+
+       prepare_vcpu_init(c, &init);
+       vcpu = __vm_vcpu_add(vm, 0);
+       aarch64_vcpu_setup(vcpu, &init);
+       finalize_vcpu(vcpu, c);
+
+       return vcpu;
+}
+#else
+static struct kvm_vcpu *vcpu_config_get_vcpu(struct vcpu_reg_list *c, struct kvm_vm *vm)
+{
+       return __vm_vcpu_add(vm, 0);
+}
+#endif
+
 static void check_supported(struct vcpu_reg_list *c)
 {
        struct vcpu_reg_sublist *s;
@@ -145,7 +165,6 @@ static bool print_filtered;
 
 static void run_test(struct vcpu_reg_list *c)
 {
-       struct kvm_vcpu_init init = { .target = -1, };
        int new_regs = 0, missing_regs = 0, i, n;
        int failed_get = 0, failed_set = 0, failed_reject = 0;
        struct kvm_vcpu *vcpu;
@@ -155,10 +174,7 @@ static void run_test(struct vcpu_reg_list *c)
        check_supported(c);
 
        vm = vm_create_barebones();
-       prepare_vcpu_init(c, &init);
-       vcpu = __vm_vcpu_add(vm, 0);
-       aarch64_vcpu_setup(vcpu, &init);
-       finalize_vcpu(vcpu, c);
+       vcpu = vcpu_config_get_vcpu(c, vm);
 
        reg_list = vcpu_get_reg_list(vcpu);