[SRU][N][PATCH 1/1] s390/cpum_cf: make crypto counters upward compatible across machine types

frank.heimes at canonical.com frank.heimes at canonical.com
Thu Aug 1 10:53:54 UTC 2024


From: Thomas Richter <tmricht at linux.ibm.com>

BugLink: https://bugs.launchpad.net/bugs/2074380

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 at linux.ibm.com>
Acked-by: Sumanth Korikkar <sumanthk at linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev at linux.ibm.com>
(cherry picked from commit f10933cbd2dfddf6273698a45f76db9bafd8150f)
Signed-off-by: Frank Heimes <frank.heimes at canonical.com>
---
 arch/s390/kernel/perf_cpum_cf.c        |  2 +-
 arch/s390/kernel/perf_cpum_cf_events.c | 11 +++--------
 2 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/arch/s390/kernel/perf_cpum_cf.c b/arch/s390/kernel/perf_cpum_cf.c
index 41ed6e0f0a2a..1434642e9cba 100644
--- a/arch/s390/kernel/perf_cpum_cf.c
+++ b/arch/s390/kernel/perf_cpum_cf.c
@@ -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:
diff --git a/arch/s390/kernel/perf_cpum_cf_events.c b/arch/s390/kernel/perf_cpum_cf_events.c
index 0d64aafd158f..e4a6bfc91080 100644
--- a/arch/s390/kernel/perf_cpum_cf_events.c
+++ b/arch/s390/kernel/perf_cpum_cf_events.c
@@ -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);
-- 
2.34.1




More information about the kernel-team mailing list