From ac03223f0723cf7ee11171be963f19958a91f7b3 Mon Sep 17 00:00:00 2001 From: Thomas Richter Date: Wed, 5 Nov 2025 15:38:56 +0100 Subject: [PATCH] s390/pai_crypto: Add common pai_stop() function To support one common PAI PMU device driver which handles both PMUs pai_crypto and pai_ext, use a common naming scheme for structures and variables suitable for both device drivers. Add a common usable function pai_stop() for the event on a CPU. Call this common pai_stop() from paicrypt_del(). Signed-off-by: Thomas Richter Reviewed-by: Jan Polensky Signed-off-by: Heiko Carstens --- arch/s390/kernel/perf_pai_crypto.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/arch/s390/kernel/perf_pai_crypto.c b/arch/s390/kernel/perf_pai_crypto.c index 73a55ddedc800..5d4b9ffe3cb15 100644 --- a/arch/s390/kernel/perf_pai_crypto.c +++ b/arch/s390/kernel/perf_pai_crypto.c @@ -435,13 +435,14 @@ static int paicrypt_add(struct perf_event *event, int flags) } static void pai_have_sample(struct perf_event *, struct pai_map *); -static void paicrypt_stop(struct perf_event *event, int flags) +static void pai_stop(struct perf_event *event, int flags) { struct pai_mapptr *mp = this_cpu_ptr(pai_root.mapptr); struct pai_map *cpump = mp->mapptr; + int idx = PAI_PMU_IDX(event); if (!event->attr.sample_period) { /* Counting */ - paicrypt_read(event); + pai_pmu[idx].pmu->read(event); } else { /* Sampling */ if (!(event->attach_state & PERF_ATTACH_TASK)) { perf_sched_cb_dec(event->pmu); @@ -454,6 +455,11 @@ static void paicrypt_stop(struct perf_event *event, int flags) event->hw.state = PERF_HES_STOPPED; } +static void paicrypt_stop(struct perf_event *event, int flags) +{ + pai_stop(event, flags); +} + static void paicrypt_del(struct perf_event *event, int flags) { struct pai_mapptr *mp = this_cpu_ptr(pai_root.mapptr); -- 2.47.3