]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
s390/pai_crypto: Introduce PAI crypto specific event delete function
authorThomas Richter <tmricht@linux.ibm.com>
Wed, 5 Nov 2025 14:39:00 +0000 (15:39 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Fri, 14 Nov 2025 10:30:07 +0000 (11:30 +0100)
Introduce PAI crypto specific event delete function to handle
additional actions to be done at event removal.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Reviewed-by: Jan Polensky <japo@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/kernel/perf_pai_crypto.c

index 94551b3d09f3b116c417fe417c873bc06b9f2c86..f2d7f8bc0319a8240b96b88b2a911c1b904e42be 100644 (file)
@@ -138,7 +138,6 @@ static void pai_event_destroy(struct perf_event *event)
 {
        int cpu;
 
-       static_branch_dec(&pai_key);
        free_page(PAI_SAVE_AREA(event));
        if (event->cpu == -1) {
                struct cpumask *mask = PAI_CPU_MASK(event);
@@ -151,6 +150,12 @@ static void pai_event_destroy(struct perf_event *event)
        }
 }
 
+static void paicrypt_event_destroy(struct perf_event *event)
+{
+       static_branch_dec(&pai_key);
+       pai_event_destroy(event);
+}
+
 static u64 pai_getctr(unsigned long *page, int nr, unsigned long offset)
 {
        if (offset)
@@ -360,7 +365,7 @@ static int paicrypt_event_init(struct perf_event *event)
        int rc = pai_event_init(event, PAI_PMU_CRYPTO);
 
        if (!rc) {
-               event->destroy = pai_event_destroy;
+               event->destroy = paicrypt_event_destroy;
                static_branch_inc(&pai_key);
        }
        return rc;