--- /dev/null
+From niko.mauno@vaisala.com Thu Oct 23 13:42:15 2025
+From: niko.mauno@vaisala.com
+Date: Thu, 23 Oct 2025 10:51:01 +0300
+Subject: Revert "perf test: Don't leak workload gopipe in PERF_RECORD_*"
+To: gregkh@linuxfoundation.org, stable@vger.kernel.org
+Cc: peterz@infradead.org, mingo@redhat.com, acme@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@redhat.com, namhyung@kernel.org, irogers@google.com, sashal@kernel.org, Niko Mauno <niko.mauno@vaisala.com>
+Message-ID: <20251023075101.25106-1-niko.mauno@vaisala.com>
+
+From: Niko Mauno <niko.mauno@vaisala.com>
+
+This reverts commit b7e5c59f3b0971f56ebbceb9d42cc45e9ac1cd94 which is
+commit 48918cacefd226af44373e914e63304927c0e7dc upstream.
+
+Commit in question broke building perf followingly with v5.15.195:
+
+ | ld: perf-in.o: in function `test__PERF_RECORD':
+ | tools/perf/tests/perf-record.c:142: undefined reference to `evlist__cancel_workload'
+
+The 'evlist__cancel_workload' seems to be introduced in
+commit e880a70f8046 ("perf stat: Close cork_fd when create_perf_stat_counter() failed")
+which is currently not included in the 5.15 stable series.
+
+Fixes: b7e5c59f3b09 ("perf test: Don't leak workload gopipe in PERF_RECORD_*")
+Cc: stable@vger.kernel.org # 5.15
+Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ tools/perf/tests/perf-record.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+--- a/tools/perf/tests/perf-record.c
++++ b/tools/perf/tests/perf-record.c
+@@ -115,7 +115,6 @@ int test__PERF_RECORD(struct test *test
+ if (err < 0) {
+ pr_debug("sched__get_first_possible_cpu: %s\n",
+ str_error_r(errno, sbuf, sizeof(sbuf)));
+- evlist__cancel_workload(evlist);
+ goto out_delete_evlist;
+ }
+
+@@ -127,7 +126,6 @@ int test__PERF_RECORD(struct test *test
+ if (sched_setaffinity(evlist->workload.pid, cpu_mask_size, &cpu_mask) < 0) {
+ pr_debug("sched_setaffinity: %s\n",
+ str_error_r(errno, sbuf, sizeof(sbuf)));
+- evlist__cancel_workload(evlist);
+ goto out_delete_evlist;
+ }
+
+@@ -139,7 +137,6 @@ int test__PERF_RECORD(struct test *test
+ if (err < 0) {
+ pr_debug("perf_evlist__open: %s\n",
+ str_error_r(errno, sbuf, sizeof(sbuf)));
+- evlist__cancel_workload(evlist);
+ goto out_delete_evlist;
+ }
+
+@@ -152,7 +149,6 @@ int test__PERF_RECORD(struct test *test
+ if (err < 0) {
+ pr_debug("evlist__mmap: %s\n",
+ str_error_r(errno, sbuf, sizeof(sbuf)));
+- evlist__cancel_workload(evlist);
+ goto out_delete_evlist;
+ }
+