powerpc/sstep: Let compute tests specify a required cpu feature
authorJordan Niethe <jniethe5@gmail.com>
Mon, 25 May 2020 02:59:22 +0000 (12:59 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 23 Jul 2020 07:25:18 +0000 (17:25 +1000)
An a array of struct compute_test's are used to declare tests for
compute instructions. Add a cpu_feature field to struct compute_test as
an optional way to specify a cpu feature that must be present. If not
present then skip the test.

Signed-off-by: Jordan Niethe <jniethe5@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200525025923.19843-4-jniethe5@gmail.com
arch/powerpc/lib/test_emulate_step.c

index 857b95e..f8cd3ca 100644 (file)
@@ -625,6 +625,7 @@ static void __init run_tests_load_store(void)
 
 struct compute_test {
        char *mnemonic;
+       unsigned long cpu_feature;
        struct {
                char *descr;
                unsigned long flags;
@@ -1068,6 +1069,11 @@ static void __init run_tests_compute(void)
        for (i = 0; i < ARRAY_SIZE(compute_tests); i++) {
                test = &compute_tests[i];
 
+               if (test->cpu_feature && !early_cpu_has_feature(test->cpu_feature)) {
+                       show_result(test->mnemonic, "SKIP (!CPU_FTR)");
+                       continue;
+               }
+
                for (j = 0; j < MAX_SUBTESTS && test->subtests[j].descr; j++) {
                        instr = test->subtests[j].instr;
                        flags = test->subtests[j].flags;