[PATCH kvm-unit-tests 07/13] x86: hyper-v: Use 'goto' instead of putting the whole test in an 'if' branch in hyperv_synic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Unify 'hyperv_synic' test with other Hyper-V tests by using the:

 if (required-features-missing) {
    report_skip();
    goto done;
 }
 ...

 done:
     return report_summary();

pattern.

Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>
---
 x86/hyperv_synic.c | 61 +++++++++++++++++++++++-----------------------
 1 file changed, 31 insertions(+), 30 deletions(-)

diff --git a/x86/hyperv_synic.c b/x86/hyperv_synic.c
index 00655db10131..761df8ac43c0 100644
--- a/x86/hyperv_synic.c
+++ b/x86/hyperv_synic.c
@@ -141,45 +141,46 @@ static void synic_test_cleanup(void *ctx)
 
 int main(int ac, char **av)
 {
+    int ncpus, i;
+    bool ok;
 
-    if (hv_synic_supported()) {
-        int ncpus, i;
-        bool ok;
-
-        setup_vm();
-        enable_apic();
+    if (!hv_synic_supported()) {
+	report_skip("Hyper-V SynIC is not supported");
+	goto done;
+    }
 
-        ncpus = cpu_count();
-        if (ncpus > MAX_CPUS)
-            report_abort("number cpus exceeds %d", MAX_CPUS);
-        printf("ncpus = %d\n", ncpus);
+    setup_vm();
+    enable_apic();
 
-        synic_prepare_sint_vecs();
+    ncpus = cpu_count();
+    if (ncpus > MAX_CPUS)
+	report_abort("number cpus exceeds %d", MAX_CPUS);
+    printf("ncpus = %d\n", ncpus);
 
-        printf("prepare\n");
-        on_cpus(synic_test_prepare, (void *)read_cr3());
+    synic_prepare_sint_vecs();
 
-        for (i = 0; i < ncpus; i++) {
-            printf("test %d -> %d\n", i, ncpus - 1 - i);
-            on_cpu_async(i, synic_test, (void *)(ulong)(ncpus - 1 - i));
-        }
-        while (cpus_active() > 1)
-            pause();
+    printf("prepare\n");
+    on_cpus(synic_test_prepare, (void *)read_cr3());
 
-        printf("cleanup\n");
-        on_cpus(synic_test_cleanup, NULL);
+    for (i = 0; i < ncpus; i++) {
+	printf("test %d -> %d\n", i, ncpus - 1 - i);
+	on_cpu_async(i, synic_test, (void *)(ulong)(ncpus - 1 - i));
+    }
+    while (cpus_active() > 1)
+	pause();
 
-        ok = true;
-        for (i = 0; i < ncpus; ++i) {
-            printf("isr_enter_count[%d] = %d\n",
-                   i, atomic_read(&isr_enter_count[i]));
-            ok &= atomic_read(&isr_enter_count[i]) == 16;
-        }
+    printf("cleanup\n");
+    on_cpus(synic_test_cleanup, NULL);
 
-        report(ok, "Hyper-V SynIC test");
-    } else {
-        printf("Hyper-V SynIC is not supported");
+    ok = true;
+    for (i = 0; i < ncpus; ++i) {
+	printf("isr_enter_count[%d] = %d\n",
+	       i, atomic_read(&isr_enter_count[i]));
+	ok &= atomic_read(&isr_enter_count[i]) == 16;
     }
 
+    report(ok, "Hyper-V SynIC test");
+
+done:
     return report_summary();
 }
-- 
2.44.0





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux