s390/cpum_cf: make crypto counters upward compatible across machine types
authorThomas Richter <tmricht@linux.ibm.com>
Wed, 27 Mar 2024 08:22:43 +0000 (09:22 +0100)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Tue, 9 Apr 2024 15:29:56 +0000 (17:29 +0200)
The CPU Measurement facility crypto counter set functionality
is defined by the Second Counter Version Number. This number
varies between machine types, but is upward compatible.
Lessen the checks to reflect this behavior.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/kernel/perf_cpum_cf.c
arch/s390/kernel/perf_cpum_cf_events.c

index 41ed6e0..1434642 100644 (file)
@@ -428,7 +428,7 @@ static void cpum_cf_make_setsize(enum cpumf_ctr_set ctrset)
        case CPUMF_CTR_SET_CRYPTO:
                if (cpumf_ctr_info.csvn >= 1 && cpumf_ctr_info.csvn <= 5)
                        ctrset_size = 16;
-               else if (cpumf_ctr_info.csvn == 6 || cpumf_ctr_info.csvn == 7)
+               else if (cpumf_ctr_info.csvn >= 6)
                        ctrset_size = 20;
                break;
        case CPUMF_CTR_SET_EXT:
index 0d64aaf..e4a6bfc 100644 (file)
@@ -855,16 +855,11 @@ __init const struct attribute_group **cpumf_cf_event_group(void)
        }
 
        /* Determine version specific crypto set */
-       switch (ci.csvn) {
-       case 1 ... 5:
+       csvn = none;
+       if (ci.csvn >= 1 && ci.csvn <= 5)
                csvn = cpumcf_svn_12345_pmu_event_attr;
-               break;
-       case 6 ... 7:
+       else if (ci.csvn >= 6)
                csvn = cpumcf_svn_67_pmu_event_attr;
-               break;
-       default:
-               csvn = none;
-       }
 
        /* Determine model-specific counter set(s) */
        get_cpu_id(&cpu_id);