]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
s390/cpum_sf: Ignore lsctl() return code in sf_disable()
authorThomas Richter <tmricht@linux.ibm.com>
Thu, 8 Aug 2024 08:58:56 +0000 (10:58 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Wed, 21 Aug 2024 14:17:01 +0000 (16:17 +0200)
sf_disable() returns the condition code of instruction lsctl (load
sampling controls). However the parameter to lsctl() in
sf_disable() is a sample control block containing
all zeroes. This invocation of lsctl() does not fail and returns
always zero even when there is no authorization for sampling
on the machine. In short, sampling can be always turned off.
Ignore the return code of sf_disable() and change the function
return to void.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/perf_cpum_sf.c

index d87d58f2ec1ba466f74a214033cf8692688089ee..13ab77e5ef21eed8c91ecb631e5fb9e12bdd60bf 100644 (file)
@@ -170,12 +170,12 @@ static inline unsigned long *get_next_sdbt(unsigned long *s)
 /*
  * sf_disable() - Switch off sampling facility
  */
-static int sf_disable(void)
+static void sf_disable(void)
 {
        struct hws_lsctl_request_block sreq;
 
        memset(&sreq, 0, sizeof(sreq));
-       return lsctl(&sreq);
+       lsctl(&sreq);
 }
 
 /*
@@ -620,13 +620,12 @@ static void setup_pmc_cpu(void *flags)
                if (err)
                        break;
                cpuhw->flags |= PMU_F_RESERVED;
-               err = sf_disable();
+               sf_disable();
                break;
        case PMC_RELEASE:
                cpuhw->flags &= ~PMU_F_RESERVED;
-               err = sf_disable();
-               if (!err)
-                       deallocate_buffers(cpuhw);
+               sf_disable();
+               deallocate_buffers(cpuhw);
                break;
        }
        if (err) {