All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Ian Rogers <irogers@google.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 375/666] perf tool_pmu: Factor tool events into their own PMU
Date: Wed, 20 May 2026 18:19:46 +0200	[thread overview]
Message-ID: <20260520162119.375577583@linuxfoundation.org> (raw)
In-Reply-To: <20260520162111.222830634@linuxfoundation.org>

6.12-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Ian Rogers <irogers@google.com>

[ Upstream commit 240505b2d0adcdc8fd018117e88dc27b09734735 ]

Rather than treat tool events as a special kind of event, create a
tool only PMU where the events/aliases match the existing
duration_time, user_time and system_time events. Remove special
parsing and printing support for the tool events, but add function
calls for when PMU functions are called on a tool_pmu.

Move the tool PMU code in evsel into tool_pmu.c to better encapsulate
the tool event behavior in that file.

Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20241002032016.333748-5-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Stable-dep-of: c9ef786c0970 ("perf cgroup: Update metric leader in evlist__expand_cgroup")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 tools/perf/builtin-list.c      |  13 +-
 tools/perf/builtin-stat.c      |   1 +
 tools/perf/util/Build          |   1 +
 tools/perf/util/evsel.c        | 272 ++--------------------
 tools/perf/util/evsel.h        |  28 +--
 tools/perf/util/metricgroup.c  |   1 +
 tools/perf/util/parse-events.c |  39 ----
 tools/perf/util/parse-events.h |   3 -
 tools/perf/util/parse-events.l |  11 -
 tools/perf/util/parse-events.y |  16 --
 tools/perf/util/pmu.c          |  20 +-
 tools/perf/util/pmu.h          |   2 +
 tools/perf/util/pmus.c         |   9 +
 tools/perf/util/print-events.c |  36 +--
 tools/perf/util/print-events.h |   1 -
 tools/perf/util/stat-display.c |   6 +-
 tools/perf/util/stat-shadow.c  |   1 +
 tools/perf/util/tool_pmu.c     | 411 +++++++++++++++++++++++++++++++++
 tools/perf/util/tool_pmu.h     |  51 ++++
 19 files changed, 530 insertions(+), 392 deletions(-)
 create mode 100644 tools/perf/util/tool_pmu.c
 create mode 100644 tools/perf/util/tool_pmu.h

diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c
index c5331721dfee9..9e7fdfcdd7ffb 100644
--- a/tools/perf/builtin-list.c
+++ b/tools/perf/builtin-list.c
@@ -19,6 +19,7 @@
 #include "util/string2.h"
 #include "util/strlist.h"
 #include "util/strbuf.h"
+#include "util/tool_pmu.h"
 #include <subcmd/pager.h>
 #include <subcmd/parse-options.h>
 #include <linux/zalloc.h>
@@ -614,9 +615,18 @@ int cmd_list(int argc, const char **argv)
 					event_symbols_hw, PERF_COUNT_HW_MAX);
 		else if (strcmp(argv[i], "sw") == 0 ||
 			 strcmp(argv[i], "software") == 0) {
+			char *old_pmu_glob = default_ps.pmu_glob;
+
 			print_symbol_events(&print_cb, ps, PERF_TYPE_SOFTWARE,
 					event_symbols_sw, PERF_COUNT_SW_MAX);
-			print_tool_events(&print_cb, ps);
+			default_ps.pmu_glob = strdup("tool");
+			if (!default_ps.pmu_glob) {
+				ret = -1;
+				goto out;
+			}
+			perf_pmus__print_pmu_events(&print_cb, ps);
+			zfree(&default_ps.pmu_glob);
+			default_ps.pmu_glob = old_pmu_glob;
 		} else if (strcmp(argv[i], "cache") == 0 ||
 			 strcmp(argv[i], "hwcache") == 0)
 			print_hwcache_events(&print_cb, ps);
@@ -664,7 +674,6 @@ int cmd_list(int argc, const char **argv)
 					event_symbols_hw, PERF_COUNT_HW_MAX);
 			print_symbol_events(&print_cb, ps, PERF_TYPE_SOFTWARE,
 					event_symbols_sw, PERF_COUNT_SW_MAX);
-			print_tool_events(&print_cb, ps);
 			print_hwcache_events(&print_cb, ps);
 			perf_pmus__print_pmu_events(&print_cb, ps);
 			print_tracepoint_events(&print_cb, ps);
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index e476598de8083..e8708f785e7f2 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -46,6 +46,7 @@
 #include "util/parse-events.h"
 #include "util/pmus.h"
 #include "util/pmu.h"
+#include "util/tool_pmu.h"
 #include "util/event.h"
 #include "util/evlist.h"
 #include "util/evsel.h"
diff --git a/tools/perf/util/Build b/tools/perf/util/Build
index dc616292b2ddf..fa508e113dd0c 100644
--- a/tools/perf/util/Build
+++ b/tools/perf/util/Build
@@ -83,6 +83,7 @@ perf-util-y += pmu.o
 perf-util-y += pmus.o
 perf-util-y += pmu-flex.o
 perf-util-y += pmu-bison.o
+perf-util-y += tool_pmu.o
 perf-util-y += svghelper.o
 perf-util-$(CONFIG_LIBTRACEEVENT) += trace-event-info.o
 perf-util-y += trace-event-scripting.o
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
index 6e8d70ec05bad..d2965dc49bac2 100644
--- a/tools/perf/util/evsel.c
+++ b/tools/perf/util/evsel.c
@@ -10,7 +10,6 @@
 #include <errno.h>
 #include <inttypes.h>
 #include <linux/bitops.h>
-#include <api/io.h>
 #include <api/fs/fs.h>
 #include <api/fs/tracing_path.h>
 #include <linux/hw_breakpoint.h>
@@ -51,6 +50,7 @@
 #include "off_cpu.h"
 #include "pmu.h"
 #include "pmus.h"
+#include "tool_pmu.h"
 #include "rlimit.h"
 #include "../perf-sys.h"
 #include "util/parse-branch-options.h"
@@ -71,33 +71,6 @@ struct perf_missing_features perf_missing_features;
 
 static clockid_t clockid;
 
-static const char *const perf_tool_event__tool_names[PERF_TOOL_MAX] = {
-	NULL,
-	"duration_time",
-	"user_time",
-	"system_time",
-};
-
-const char *perf_tool_event__to_str(enum perf_tool_event ev)
-{
-	if (ev > PERF_TOOL_NONE && ev < PERF_TOOL_MAX)
-		return perf_tool_event__tool_names[ev];
-
-	return NULL;
-}
-
-enum perf_tool_event perf_tool_event__from_str(const char *str)
-{
-	int i;
-
-	perf_tool_event__for_each_event(i) {
-		if (!strcmp(str, perf_tool_event__tool_names[i]))
-			return i;
-	}
-	return PERF_TOOL_NONE;
-}
-
-
 static int evsel__no_extra_init(struct evsel *evsel __maybe_unused)
 {
 	return 0;
@@ -422,7 +395,6 @@ struct evsel *evsel__clone(struct evsel *orig)
 	evsel->core.leader = orig->core.leader;
 
 	evsel->max_events = orig->max_events;
-	evsel->tool_event = orig->tool_event;
 	free((char *)evsel->unit);
 	evsel->unit = strdup(orig->unit);
 	if (evsel->unit == NULL)
@@ -620,11 +592,6 @@ static int evsel__sw_name(struct evsel *evsel, char *bf, size_t size)
 	return r + evsel__add_modifiers(evsel, bf + r, size - r);
 }
 
-static int evsel__tool_name(enum perf_tool_event ev, char *bf, size_t size)
-{
-	return scnprintf(bf, size, "%s", perf_tool_event__to_str(ev));
-}
-
 static int __evsel__bp_name(char *bf, size_t size, u64 addr, u64 type)
 {
 	int r;
@@ -775,10 +742,7 @@ const char *evsel__name(struct evsel *evsel)
 		break;
 
 	case PERF_TYPE_SOFTWARE:
-		if (evsel__is_tool(evsel))
-			evsel__tool_name(evsel__tool_event(evsel), bf, sizeof(bf));
-		else
-			evsel__sw_name(evsel, bf, sizeof(bf));
+		evsel__sw_name(evsel, bf, sizeof(bf));
 		break;
 
 	case PERF_TYPE_TRACEPOINT:
@@ -789,6 +753,10 @@ const char *evsel__name(struct evsel *evsel)
 		evsel__bp_name(evsel, bf, sizeof(bf));
 		break;
 
+	case PERF_PMU_TYPE_TOOL:
+		scnprintf(bf, sizeof(bf), "%s", evsel__tool_pmu_event_name(evsel));
+		break;
+
 	default:
 		scnprintf(bf, sizeof(bf), "unknown attr type: %d",
 			  evsel->core.attr.type);
@@ -814,7 +782,7 @@ const char *evsel__metric_id(const struct evsel *evsel)
 		return evsel->metric_id;
 
 	if (evsel__is_tool(evsel))
-		return perf_tool_event__to_str(evsel__tool_event(evsel));
+		return evsel__tool_pmu_event_name(evsel);
 
 	return "unknown";
 }
@@ -1698,167 +1666,6 @@ static int evsel__read_group(struct evsel *leader, int cpu_map_idx, int thread)
 	return evsel__process_group_data(leader, cpu_map_idx, thread, data);
 }
 
-static bool read_until_char(struct io *io, char e)
-{
-	int c;
-
-	do {
-		c = io__get_char(io);
-		if (c == -1)
-			return false;
-	} while (c != e);
-	return true;
-}
-
-static int read_stat_field(int fd, struct perf_cpu cpu, int field, __u64 *val)
-{
-	char buf[256];
-	struct io io;
-	int i;
-
-	io__init(&io, fd, buf, sizeof(buf));
-
-	/* Skip lines to relevant CPU. */
-	for (i = -1; i < cpu.cpu; i++) {
-		if (!read_until_char(&io, '\n'))
-			return -EINVAL;
-	}
-	/* Skip to "cpu". */
-	if (io__get_char(&io) != 'c') return -EINVAL;
-	if (io__get_char(&io) != 'p') return -EINVAL;
-	if (io__get_char(&io) != 'u') return -EINVAL;
-
-	/* Skip N of cpuN. */
-	if (!read_until_char(&io, ' '))
-		return -EINVAL;
-
-	i = 1;
-	while (true) {
-		if (io__get_dec(&io, val) != ' ')
-			break;
-		if (field == i)
-			return 0;
-		i++;
-	}
-	return -EINVAL;
-}
-
-static int read_pid_stat_field(int fd, int field, __u64 *val)
-{
-	char buf[256];
-	struct io io;
-	int c, i;
-
-	io__init(&io, fd, buf, sizeof(buf));
-	if (io__get_dec(&io, val) != ' ')
-		return -EINVAL;
-	if (field == 1)
-		return 0;
-
-	/* Skip comm. */
-	if (io__get_char(&io) != '(' || !read_until_char(&io, ')'))
-		return -EINVAL;
-	if (field == 2)
-		return -EINVAL; /* String can't be returned. */
-
-	/* Skip state */
-	if (io__get_char(&io) != ' ' || io__get_char(&io) == -1)
-		return -EINVAL;
-	if (field == 3)
-		return -EINVAL; /* String can't be returned. */
-
-	/* Loop over numeric fields*/
-	if (io__get_char(&io) != ' ')
-		return -EINVAL;
-
-	i = 4;
-	while (true) {
-		c = io__get_dec(&io, val);
-		if (c == -1)
-			return -EINVAL;
-		if (c == -2) {
-			/* Assume a -ve was read */
-			c = io__get_dec(&io, val);
-			*val *= -1;
-		}
-		if (c != ' ')
-			return -EINVAL;
-		if (field == i)
-			return 0;
-		i++;
-	}
-	return -EINVAL;
-}
-
-static int evsel__read_tool(struct evsel *evsel, int cpu_map_idx, int thread)
-{
-	__u64 *start_time, cur_time, delta_start;
-	int fd, err = 0;
-	struct perf_counts_values *count;
-	bool adjust = false;
-
-	count = perf_counts(evsel->counts, cpu_map_idx, thread);
-
-	switch (evsel__tool_event(evsel)) {
-	case PERF_TOOL_DURATION_TIME:
-		/*
-		 * Pretend duration_time is only on the first CPU and thread, or
-		 * else aggregation will scale duration_time by the number of
-		 * CPUs/threads.
-		 */
-		start_time = &evsel->start_time;
-		if (cpu_map_idx == 0 && thread == 0)
-			cur_time = rdclock();
-		else
-			cur_time = *start_time;
-		break;
-	case PERF_TOOL_USER_TIME:
-	case PERF_TOOL_SYSTEM_TIME: {
-		bool system = evsel__tool_event(evsel) == PERF_TOOL_SYSTEM_TIME;
-
-		start_time = xyarray__entry(evsel->start_times, cpu_map_idx, thread);
-		fd = FD(evsel, cpu_map_idx, thread);
-		lseek(fd, SEEK_SET, 0);
-		if (evsel->pid_stat) {
-			/* The event exists solely on 1 CPU. */
-			if (cpu_map_idx == 0)
-				err = read_pid_stat_field(fd, system ? 15 : 14, &cur_time);
-			else
-				cur_time = 0;
-		} else {
-			/* The event is for all threads. */
-			if (thread == 0) {
-				struct perf_cpu cpu = perf_cpu_map__cpu(evsel->core.cpus,
-									cpu_map_idx);
-
-				err = read_stat_field(fd, cpu, system ? 3 : 1, &cur_time);
-			} else {
-				cur_time = 0;
-			}
-		}
-		adjust = true;
-		break;
-	}
-	case PERF_TOOL_NONE:
-	case PERF_TOOL_MAX:
-	default:
-		err = -EINVAL;
-	}
-	if (err)
-		return err;
-
-	delta_start = cur_time - *start_time;
-	if (adjust) {
-		__u64 ticks_per_sec = sysconf(_SC_CLK_TCK);
-
-		delta_start *= 1000000000 / ticks_per_sec;
-	}
-	count->val    = delta_start;
-	count->ena    = count->run = delta_start;
-	count->lost   = 0;
-	return 0;
-}
-
 bool __evsel__match(const struct evsel *evsel, u32 type, u64 config)
 {
 
@@ -2074,6 +1881,7 @@ static struct perf_thread_map *empty_thread_map;
 static int __evsel__prepare_open(struct evsel *evsel, struct perf_cpu_map *cpus,
 		struct perf_thread_map *threads)
 {
+	int ret = 0;
 	int nthreads = perf_thread_map__nr(threads);
 
 	if ((perf_missing_features.write_backward && evsel->core.attr.write_backward) ||
@@ -2104,19 +1912,14 @@ static int __evsel__prepare_open(struct evsel *evsel, struct perf_cpu_map *cpus,
 	    perf_evsel__alloc_fd(&evsel->core, perf_cpu_map__nr(cpus), nthreads) < 0)
 		return -ENOMEM;
 
-	if ((evsel__tool_event(evsel) == PERF_TOOL_SYSTEM_TIME ||
-	     evsel__tool_event(evsel) == PERF_TOOL_USER_TIME) &&
-	    !evsel->start_times) {
-		evsel->start_times = xyarray__new(perf_cpu_map__nr(cpus), nthreads, sizeof(__u64));
-		if (!evsel->start_times)
-			return -ENOMEM;
-	}
+	if (evsel__is_tool(evsel))
+		ret = evsel__tool_pmu_prepare_open(evsel, cpus, nthreads);
 
 	evsel->open_flags = PERF_FLAG_FD_CLOEXEC;
 	if (evsel->cgrp)
 		evsel->open_flags |= PERF_FLAG_PID_CGROUP;
 
-	return 0;
+	return ret;
 }
 
 static void evsel__disable_missing_features(struct evsel *evsel)
@@ -2294,13 +2097,6 @@ static int evsel__open_cpu(struct evsel *evsel, struct perf_cpu_map *cpus,
 	int pid = -1, err, old_errno;
 	enum rlimit_action set_rlimit = NO_CHANGE;
 
-	if (evsel__tool_event(evsel) == PERF_TOOL_DURATION_TIME) {
-		if (evsel->core.attr.sample_period) /* no sampling */
-			return -EINVAL;
-		evsel->start_time = rdclock();
-		return 0;
-	}
-
 	if (evsel__is_retire_lat(evsel))
 		return tpebs_start(evsel->evlist);
 
@@ -2325,6 +2121,12 @@ static int evsel__open_cpu(struct evsel *evsel, struct perf_cpu_map *cpus,
 	pr_debug3("Opening: %s\n", evsel__name(evsel));
 	display_attr(&evsel->core.attr);
 
+	if (evsel__is_tool(evsel)) {
+		return evsel__tool_pmu_open(evsel, threads,
+					    start_cpu_map_idx,
+					    end_cpu_map_idx);
+	}
+
 	for (idx = start_cpu_map_idx; idx < end_cpu_map_idx; idx++) {
 
 		for (thread = 0; thread < nthreads; thread++) {
@@ -2336,46 +2138,6 @@ static int evsel__open_cpu(struct evsel *evsel, struct perf_cpu_map *cpus,
 			if (!evsel->cgrp && !evsel->core.system_wide)
 				pid = perf_thread_map__pid(threads, thread);
 
-			if (evsel__tool_event(evsel) == PERF_TOOL_USER_TIME ||
-			    evsel__tool_event(evsel) == PERF_TOOL_SYSTEM_TIME) {
-				bool system = evsel__tool_event(evsel) == PERF_TOOL_SYSTEM_TIME;
-				__u64 *start_time = NULL;
-
-				if (evsel->core.attr.sample_period) {
-					/* no sampling */
-					err = -EINVAL;
-					goto out_close;
-				}
-				if (pid > -1) {
-					char buf[64];
-
-					snprintf(buf, sizeof(buf), "/proc/%d/stat", pid);
-					fd = open(buf, O_RDONLY);
-					evsel->pid_stat = true;
-				} else {
-					fd = open("/proc/stat", O_RDONLY);
-				}
-				FD(evsel, idx, thread) = fd;
-				if (fd < 0) {
-					err = -errno;
-					goto out_close;
-				}
-				start_time = xyarray__entry(evsel->start_times, idx, thread);
-				if (pid > -1) {
-					err = read_pid_stat_field(fd, system ? 15 : 14,
-								  start_time);
-				} else {
-					struct perf_cpu cpu;
-
-					cpu = perf_cpu_map__cpu(evsel->core.cpus, idx);
-					err = read_stat_field(fd, cpu, system ? 3 : 1,
-							      start_time);
-				}
-				if (err)
-					goto out_close;
-				continue;
-			}
-
 			group_fd = get_group_fd(evsel, idx, thread);
 
 			if (group_fd == -2) {
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
index dc0d300776f16..b23fa3ca88883 100644
--- a/tools/perf/util/evsel.h
+++ b/tools/perf/util/evsel.h
@@ -11,6 +11,7 @@
 #include <perf/evsel.h>
 #include "symbol_conf.h"
 #include "pmus.h"
+#include "pmu.h"
 
 struct bpf_object;
 struct cgroup;
@@ -22,25 +23,9 @@ struct target;
 struct hashmap;
 struct bperf_leader_bpf;
 struct bperf_follower_bpf;
-struct perf_pmu;
 
 typedef int (evsel__sb_cb_t)(union perf_event *event, void *data);
 
-enum perf_tool_event {
-	PERF_TOOL_NONE		= 0,
-	PERF_TOOL_DURATION_TIME = 1,
-	PERF_TOOL_USER_TIME = 2,
-	PERF_TOOL_SYSTEM_TIME = 3,
-
-	PERF_TOOL_MAX,
-};
-
-const char *perf_tool_event__to_str(enum perf_tool_event ev);
-enum perf_tool_event perf_tool_event__from_str(const char *str);
-
-#define perf_tool_event__for_each_event(ev)		\
-	for ((ev) = PERF_TOOL_DURATION_TIME; (ev) < PERF_TOOL_MAX; ev++)
-
 /** struct evsel - event selector
  *
  * @evlist - evlist this evsel is in, if it is in one.
@@ -83,7 +68,6 @@ struct evsel {
 		const char		*unit;
 		struct cgroup		*cgrp;
 		const char		*metric_id;
-		enum perf_tool_event	tool_event;
 		/* parse modifier helper */
 		int			exclude_GH;
 		int			sample_read;
@@ -323,21 +307,11 @@ const char *evsel__name(struct evsel *evsel);
 bool evsel__name_is(struct evsel *evsel, const char *name);
 const char *evsel__metric_id(const struct evsel *evsel);
 
-static inline bool evsel__is_tool(const struct evsel *evsel)
-{
-	return evsel->tool_event != PERF_TOOL_NONE;
-}
-
 static inline bool evsel__is_retire_lat(const struct evsel *evsel)
 {
 	return evsel->retire_lat;
 }
 
-static inline enum perf_tool_event evsel__tool_event(const struct evsel *evsel)
-{
-	return evsel->tool_event;
-}
-
 const char *evsel__group_name(struct evsel *evsel);
 int evsel__group_desc(struct evsel *evsel, char *buf, size_t size);
 
diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
index 4dff3e925a47b..9181548e88810 100644
--- a/tools/perf/util/metricgroup.c
+++ b/tools/perf/util/metricgroup.c
@@ -14,6 +14,7 @@
 #include "pmus.h"
 #include "print-events.h"
 #include "smt.h"
+#include "tool_pmu.h"
 #include "expr.h"
 #include "rblist.h"
 #include <string.h>
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index fcc4dab618bee..ba84a451c70a3 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -302,38 +302,6 @@ static int add_event(struct list_head *list, int *idx,
 			   alternate_hw_config) ? 0 : -ENOMEM;
 }
 
-static int add_event_tool(struct list_head *list, int *idx,
-			  enum perf_tool_event tool_event)
-{
-	struct evsel *evsel;
-	struct perf_event_attr attr = {
-		.type = PERF_TYPE_SOFTWARE,
-		.config = PERF_COUNT_SW_DUMMY,
-	};
-	struct perf_cpu_map *cpu_list = NULL;
-
-	if (tool_event == PERF_TOOL_DURATION_TIME) {
-		/* Duration time is gathered globally, pretend it is only on CPU0. */
-		cpu_list = perf_cpu_map__new("0");
-	}
-	evsel = __add_event(list, idx, &attr, /*init_attr=*/true, /*name=*/NULL,
-			    /*metric_id=*/NULL, /*pmu=*/NULL,
-			    /*config_terms=*/NULL, /*auto_merge_stats=*/false,
-			    cpu_list,
-			    /*alternate_hw_config=*/PERF_COUNT_HW_MAX);
-	perf_cpu_map__put(cpu_list);
-	if (!evsel)
-		return -ENOMEM;
-	evsel->tool_event = tool_event;
-	if (tool_event == PERF_TOOL_DURATION_TIME
-	    || tool_event == PERF_TOOL_USER_TIME
-	    || tool_event == PERF_TOOL_SYSTEM_TIME) {
-		free((char *)evsel->unit);
-		evsel->unit = strdup("ns");
-	}
-	return 0;
-}
-
 /**
  * parse_aliases - search names for entries beginning or equalling str ignoring
  *                 case. If mutliple entries in names match str then the longest
@@ -1430,13 +1398,6 @@ int parse_events_add_numeric(struct parse_events_state *parse_state,
 					type, /*extended_type=*/0, config, head_config);
 }
 
-int parse_events_add_tool(struct parse_events_state *parse_state,
-			  struct list_head *list,
-			  int tool_event)
-{
-	return add_event_tool(list, &parse_state->idx, tool_event);
-}
-
 static bool config_term_percore(struct list_head *config_terms)
 {
 	struct evsel_config_term *term;
diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h
index 2b52f8d6aa29a..e9f59de2304be 100644
--- a/tools/perf/util/parse-events.h
+++ b/tools/perf/util/parse-events.h
@@ -227,9 +227,6 @@ int parse_events_add_numeric(struct parse_events_state *parse_state,
 			     u32 type, u64 config,
 			     const struct parse_events_terms *head_config,
 			     bool wildcard);
-int parse_events_add_tool(struct parse_events_state *parse_state,
-			  struct list_head *list,
-			  int tool_event);
 int parse_events_add_cache(struct list_head *list, int *idx, const char *name,
 			   struct parse_events_state *parse_state,
 			   struct parse_events_terms *parsed_terms);
diff --git a/tools/perf/util/parse-events.l b/tools/perf/util/parse-events.l
index 5a0bcd7f166ae..14e5bd856a187 100644
--- a/tools/perf/util/parse-events.l
+++ b/tools/perf/util/parse-events.l
@@ -121,14 +121,6 @@ static int sym(yyscan_t scanner, int type, int config)
 	return type == PERF_TYPE_HARDWARE ? PE_VALUE_SYM_HW : PE_VALUE_SYM_SW;
 }
 
-static int tool(yyscan_t scanner, enum perf_tool_event event)
-{
-	YYSTYPE *yylval = parse_events_get_lval(scanner);
-
-	yylval->num = event;
-	return PE_VALUE_SYM_TOOL;
-}
-
 static int term(yyscan_t scanner, enum parse_events__term_type type)
 {
 	YYSTYPE *yylval = parse_events_get_lval(scanner);
@@ -404,9 +396,6 @@ cpu-migrations|migrations			{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COU
 alignment-faults				{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_ALIGNMENT_FAULTS); }
 emulation-faults				{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_EMULATION_FAULTS); }
 dummy						{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_DUMMY); }
-duration_time					{ return tool(yyscanner, PERF_TOOL_DURATION_TIME); }
-user_time						{ return tool(yyscanner, PERF_TOOL_USER_TIME); }
-system_time						{ return tool(yyscanner, PERF_TOOL_SYSTEM_TIME); }
 bpf-output					{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_BPF_OUTPUT); }
 cgroup-switches					{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CGROUP_SWITCHES); }
 
diff --git a/tools/perf/util/parse-events.y b/tools/perf/util/parse-events.y
index dcf47fabdfdd7..f888cbb076d67 100644
--- a/tools/perf/util/parse-events.y
+++ b/tools/perf/util/parse-events.y
@@ -56,7 +56,6 @@ static void free_list_evsel(struct list_head* list_evsel)
 
 %token PE_START_EVENTS PE_START_TERMS
 %token PE_VALUE PE_VALUE_SYM_HW PE_VALUE_SYM_SW PE_TERM
-%token PE_VALUE_SYM_TOOL
 %token PE_EVENT_NAME
 %token PE_RAW PE_NAME
 %token PE_MODIFIER_EVENT PE_MODIFIER_BP PE_BP_COLON PE_BP_SLASH
@@ -68,7 +67,6 @@ static void free_list_evsel(struct list_head* list_evsel)
 %type <num> PE_VALUE
 %type <num> PE_VALUE_SYM_HW
 %type <num> PE_VALUE_SYM_SW
-%type <num> PE_VALUE_SYM_TOOL
 %type <mod> PE_MODIFIER_EVENT
 %type <term_type> PE_TERM
 %type <num> value_sym
@@ -350,20 +348,6 @@ value_sym sep_slash_slash_dc
 		PE_ABORT(err);
 	$$ = list;
 }
-|
-PE_VALUE_SYM_TOOL sep_slash_slash_dc
-{
-	struct list_head *list;
-	int err;
-
-	list = alloc_list();
-	if (!list)
-		YYNOMEM;
-	err = parse_events_add_tool(_parse_state, list, $1);
-	if (err)
-		YYNOMEM;
-	$$ = list;
-}
 
 event_legacy_cache:
 PE_LEGACY_CACHE opt_event_config
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 8885998c19530..15fb144e890f0 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -19,6 +19,7 @@
 #include "evsel.h"
 #include "pmu.h"
 #include "pmus.h"
+#include "tool_pmu.h"
 #include <util/pmu-bison.h>
 #include <util/pmu-flex.h>
 #include "parse-events.h"
@@ -1511,6 +1512,9 @@ int perf_pmu__config(struct perf_pmu *pmu, struct perf_event_attr *attr,
 {
 	bool zero = !!pmu->perf_event_attr_init_default;
 
+	if (perf_pmu__is_tool(pmu))
+		return tool_pmu__config_terms(attr, head_terms, err);
+
 	/* Fake PMU doesn't have proper terms so nothing to configure in attr. */
 	if (perf_pmu__is_fake(pmu))
 		return 0;
@@ -1623,8 +1627,8 @@ int perf_pmu__check_alias(struct perf_pmu *pmu, struct parse_events_terms *head_
 	info->scale    = 0.0;
 	info->snapshot = false;
 
-	/* Fake PMU doesn't rewrite terms. */
-	if (perf_pmu__is_fake(pmu))
+	/* Tool/fake PMU doesn't rewrite terms. */
+	if (perf_pmu__is_tool(pmu) || perf_pmu__is_fake(pmu))
 		goto out;
 
 	list_for_each_entry_safe(term, h, &head_terms->terms, list) {
@@ -1794,6 +1798,8 @@ bool perf_pmu__have_event(struct perf_pmu *pmu, const char *name)
 {
 	if (!name)
 		return false;
+	if (perf_pmu__is_tool(pmu))
+		return perf_tool_event__from_str(name) != PERF_TOOL_NONE;
 	if (perf_pmu__find_alias(pmu, name, /*load=*/ true) != NULL)
 		return true;
 	if (pmu->cpu_aliases_added || !pmu->events_table)
@@ -1805,6 +1811,9 @@ size_t perf_pmu__num_events(struct perf_pmu *pmu)
 {
 	size_t nr;
 
+	if (perf_pmu__is_tool(pmu))
+		return tool_pmu__num_events();
+
 	pmu_aliases_parse(pmu);
 	nr = pmu->sysfs_aliases + pmu->sys_json_aliases;
 
@@ -1866,6 +1875,9 @@ int perf_pmu__for_each_event(struct perf_pmu *pmu, bool skip_duplicate_pmus,
 	int ret = 0;
 	struct strbuf sb;
 
+	if (perf_pmu__is_tool(pmu))
+		return tool_pmu__for_each_event_cb(pmu, state, cb);
+
 	strbuf_init(&sb, /*hint=*/ 0);
 	pmu_aliases_parse(pmu);
 	pmu_add_cpu_aliases(pmu);
@@ -1954,6 +1966,7 @@ bool perf_pmu__is_software(const struct perf_pmu *pmu)
 	case PERF_TYPE_HW_CACHE:	return false;
 	case PERF_TYPE_RAW:		return false;
 	case PERF_TYPE_BREAKPOINT:	return true;
+	case PERF_PMU_TYPE_TOOL:	return true;
 	default: break;
 	}
 	for (size_t i = 0; i < ARRAY_SIZE(known_sw_pmus); i++) {
@@ -2281,6 +2294,9 @@ const char *perf_pmu__name_from_config(struct perf_pmu *pmu, u64 config)
 	if (!pmu)
 		return NULL;
 
+	if (perf_pmu__is_tool(pmu))
+		return perf_tool_event__to_str(config);
+
 	pmu_aliases_parse(pmu);
 	pmu_add_cpu_aliases(pmu);
 	list_for_each_entry(event, &pmu->aliases, list) {
diff --git a/tools/perf/util/pmu.h b/tools/perf/util/pmu.h
index 0222124b86b92..2dba1cfa20ddd 100644
--- a/tools/perf/util/pmu.h
+++ b/tools/perf/util/pmu.h
@@ -37,6 +37,7 @@ struct perf_pmu_caps {
 };
 
 enum {
+	PERF_PMU_TYPE_TOOL = 0xFFFFFFFE,
 	PERF_PMU_TYPE_FAKE = 0xFFFFFFFF,
 };
 
@@ -285,6 +286,7 @@ struct perf_pmu *perf_pmu__lookup(struct list_head *pmus, int dirfd, const char
 struct perf_pmu *perf_pmu__create_placeholder_core_pmu(struct list_head *core_pmus);
 void perf_pmu__delete(struct perf_pmu *pmu);
 struct perf_pmu *perf_pmus__find_core_pmu(void);
+
 const char *perf_pmu__name_from_config(struct perf_pmu *pmu, u64 config);
 
 #endif /* __PMU_H */
diff --git a/tools/perf/util/pmus.c b/tools/perf/util/pmus.c
index 362596ed27294..5af26a08fb915 100644
--- a/tools/perf/util/pmus.c
+++ b/tools/perf/util/pmus.c
@@ -15,6 +15,7 @@
 #include "evsel.h"
 #include "pmus.h"
 #include "pmu.h"
+#include "tool_pmu.h"
 #include "print-events.h"
 #include "strbuf.h"
 
@@ -200,6 +201,7 @@ static void pmu_read_sysfs(bool core_only)
 	int fd;
 	DIR *dir;
 	struct dirent *dent;
+	struct perf_pmu *tool_pmu;
 
 	if (read_sysfs_all_pmus || (core_only && read_sysfs_core_pmus))
 		return;
@@ -229,6 +231,10 @@ static void pmu_read_sysfs(bool core_only)
 			pr_err("Failure to set up any core PMUs\n");
 	}
 	list_sort(NULL, &core_pmus, pmus_cmp);
+	if (!core_only) {
+		tool_pmu = perf_pmus__tool_pmu();
+		list_add_tail(&tool_pmu->list, &other_pmus);
+	}
 	list_sort(NULL, &other_pmus, pmus_cmp);
 	if (!list_empty(&core_pmus)) {
 		read_sysfs_core_pmus = true;
@@ -584,6 +590,9 @@ void perf_pmus__print_raw_pmu_events(const struct print_callbacks *print_cb, voi
 		int len = pmu_name_len_no_suffix(pmu->name);
 		const char *desc = "(see 'man perf-list' or 'man perf-record' on how to encode it)";
 
+		if (perf_pmu__is_tool(pmu))
+			continue;
+
 		if (!pmu->is_core)
 			desc = NULL;
 
diff --git a/tools/perf/util/print-events.c b/tools/perf/util/print-events.c
index a1c71d9793bd8..83aaf7cda6359 100644
--- a/tools/perf/util/print-events.c
+++ b/tools/perf/util/print-events.c
@@ -29,6 +29,7 @@
 #include "tracepoint.h"
 #include "pfm.h"
 #include "thread_map.h"
+#include "tool_pmu.h"
 #include "util.h"
 
 #define MAX_NAME_LEN 100
@@ -43,21 +44,6 @@ static const char * const event_type_descriptors[] = {
 	"Hardware breakpoint",
 };
 
-static const struct event_symbol event_symbols_tool[PERF_TOOL_MAX] = {
-	[PERF_TOOL_DURATION_TIME] = {
-		.symbol = "duration_time",
-		.alias  = "",
-	},
-	[PERF_TOOL_USER_TIME] = {
-		.symbol = "user_time",
-		.alias  = "",
-	},
-	[PERF_TOOL_SYSTEM_TIME] = {
-		.symbol = "system_time",
-		.alias  = "",
-	},
-};
-
 /*
  * Print the events from <debugfs_mount_point>/tracing/events
  */
@@ -342,24 +328,6 @@ int print_hwcache_events(const struct print_callbacks *print_cb, void *print_sta
 	return 0;
 }
 
-void print_tool_events(const struct print_callbacks *print_cb, void *print_state)
-{
-	// Start at 1 because the first enum entry means no tool event.
-	for (int i = 1; i < PERF_TOOL_MAX; ++i) {
-		print_cb->print_event(print_state,
-				"tool",
-				/*pmu_name=*/NULL,
-				event_symbols_tool[i].symbol,
-				event_symbols_tool[i].alias,
-				/*scale_unit=*/NULL,
-				/*deprecated=*/false,
-				"Tool event",
-				/*desc=*/NULL,
-				/*long_desc=*/NULL,
-				/*encoding_desc=*/NULL);
-	}
-}
-
 void print_symbol_events(const struct print_callbacks *print_cb, void *print_state,
 			 unsigned int type, const struct event_symbol *syms,
 			 unsigned int max)
@@ -423,8 +391,6 @@ void print_events(const struct print_callbacks *print_cb, void *print_state)
 	print_symbol_events(print_cb, print_state, PERF_TYPE_SOFTWARE,
 			event_symbols_sw, PERF_COUNT_SW_MAX);
 
-	print_tool_events(print_cb, print_state);
-
 	print_hwcache_events(print_cb, print_state);
 
 	perf_pmus__print_pmu_events(print_cb, print_state);
diff --git a/tools/perf/util/print-events.h b/tools/perf/util/print-events.h
index bf4290bef0cd6..445efa1636c1b 100644
--- a/tools/perf/util/print-events.h
+++ b/tools/perf/util/print-events.h
@@ -36,7 +36,6 @@ void print_sdt_events(const struct print_callbacks *print_cb, void *print_state)
 void print_symbol_events(const struct print_callbacks *print_cb, void *print_state,
 			 unsigned int type, const struct event_symbol *syms,
 			 unsigned int max);
-void print_tool_events(const struct print_callbacks *print_cb, void *print_state);
 void print_tracepoint_events(const struct print_callbacks *print_cb, void *print_state);
 bool is_event_supported(u8 type, u64 config);
 
diff --git a/tools/perf/util/stat-display.c b/tools/perf/util/stat-display.c
index ea96e4ebad8c8..a82a8ec79b399 100644
--- a/tools/perf/util/stat-display.c
+++ b/tools/perf/util/stat-display.c
@@ -21,6 +21,7 @@
 #include "iostat.h"
 #include "pmu.h"
 #include "pmus.h"
+#include "tool_pmu.h"
 
 #define CNTR_NOT_SUPPORTED	"<not supported>"
 #define CNTR_NOT_COUNTED	"<not counted>"
@@ -946,7 +947,10 @@ static bool should_skip_zero_counter(struct perf_stat_config *config,
 	if (config->aggr_mode == AGGR_THREAD && config->system_wide)
 		return true;
 
-	/* Tool events have the software PMU but are only gathered on 1. */
+	/*
+	 * Many tool events are only gathered on the first index, skip other
+	 * zero values.
+	 */
 	if (evsel__is_tool(counter))
 		return true;
 
diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
index 7c49997fab3a3..caffdaa8be9a1 100644
--- a/tools/perf/util/stat-shadow.c
+++ b/tools/perf/util/stat-shadow.c
@@ -15,6 +15,7 @@
 #include <linux/zalloc.h>
 #include "iostat.h"
 #include "util/hashmap.h"
+#include "tool_pmu.h"
 
 struct stats walltime_nsecs_stats;
 struct rusage_stats ru_stats;
diff --git a/tools/perf/util/tool_pmu.c b/tools/perf/util/tool_pmu.c
new file mode 100644
index 0000000000000..f41fed39d70d8
--- /dev/null
+++ b/tools/perf/util/tool_pmu.c
@@ -0,0 +1,411 @@
+// SPDX-License-Identifier: GPL-2.0-only
+#include "cgroup.h"
+#include "counts.h"
+#include "evsel.h"
+#include "pmu.h"
+#include "print-events.h"
+#include "time-utils.h"
+#include "tool_pmu.h"
+#include <api/io.h>
+#include <internal/threadmap.h>
+#include <perf/threadmap.h>
+#include <fcntl.h>
+#include <strings.h>
+
+static const char *const tool_pmu__event_names[PERF_TOOL_MAX] = {
+	NULL,
+	"duration_time",
+	"user_time",
+	"system_time",
+};
+
+
+const char *perf_tool_event__to_str(enum perf_tool_event ev)
+{
+	if (ev > PERF_TOOL_NONE && ev < PERF_TOOL_MAX)
+		return tool_pmu__event_names[ev];
+
+	return NULL;
+}
+
+enum perf_tool_event perf_tool_event__from_str(const char *str)
+{
+	int i;
+
+	perf_tool_event__for_each_event(i) {
+		if (!strcasecmp(str, tool_pmu__event_names[i]))
+			return i;
+	}
+	return PERF_TOOL_NONE;
+}
+
+static int tool_pmu__config_term(struct perf_event_attr *attr,
+				 struct parse_events_term *term,
+				 struct parse_events_error *err)
+{
+	if (term->type_term == PARSE_EVENTS__TERM_TYPE_USER) {
+		enum perf_tool_event ev = perf_tool_event__from_str(term->config);
+
+		if (ev == PERF_TOOL_NONE)
+			goto err_out;
+
+		attr->config = ev;
+		return 0;
+	}
+err_out:
+	if (err) {
+		char *err_str;
+
+		parse_events_error__handle(err, term->err_val,
+					asprintf(&err_str,
+						"unexpected tool event term (%s) %s",
+						parse_events__term_type_str(term->type_term),
+						term->config) < 0
+					? strdup("unexpected tool event term")
+					: err_str,
+					NULL);
+	}
+	return -EINVAL;
+}
+
+int tool_pmu__config_terms(struct perf_event_attr *attr,
+			   struct parse_events_terms *terms,
+			   struct parse_events_error *err)
+{
+	struct parse_events_term *term;
+
+	list_for_each_entry(term, &terms->terms, list) {
+		if (tool_pmu__config_term(attr, term, err))
+			return -EINVAL;
+	}
+
+	return 0;
+
+}
+
+int tool_pmu__for_each_event_cb(struct perf_pmu *pmu, void *state, pmu_event_callback cb)
+{
+	struct pmu_event_info info = {
+		.pmu = pmu,
+		.event_type_desc = "Tool event",
+	};
+	int i;
+
+	perf_tool_event__for_each_event(i) {
+		int ret;
+
+		info.name = perf_tool_event__to_str(i);
+		info.alias = NULL;
+		info.scale_unit = NULL;
+		info.desc = NULL;
+		info.long_desc = NULL;
+		info.encoding_desc = NULL;
+		info.topic = NULL;
+		info.pmu_name = pmu->name;
+		info.deprecated = false;
+		ret = cb(state, &info);
+		if (ret)
+			return ret;
+	}
+	return 0;
+}
+
+bool perf_pmu__is_tool(const struct perf_pmu *pmu)
+{
+	return pmu && pmu->type == PERF_PMU_TYPE_TOOL;
+}
+
+bool evsel__is_tool(const struct evsel *evsel)
+{
+	return perf_pmu__is_tool(evsel->pmu);
+}
+
+enum perf_tool_event evsel__tool_event(const struct evsel *evsel)
+{
+	if (!evsel__is_tool(evsel))
+		return PERF_TOOL_NONE;
+
+	return (enum perf_tool_event)evsel->core.attr.config;
+}
+
+const char *evsel__tool_pmu_event_name(const struct evsel *evsel)
+{
+	return perf_tool_event__to_str(evsel->core.attr.config);
+}
+
+static bool read_until_char(struct io *io, char e)
+{
+	int c;
+
+	do {
+		c = io__get_char(io);
+		if (c == -1)
+			return false;
+	} while (c != e);
+	return true;
+}
+
+static int read_stat_field(int fd, struct perf_cpu cpu, int field, __u64 *val)
+{
+	char buf[256];
+	struct io io;
+	int i;
+
+	io__init(&io, fd, buf, sizeof(buf));
+
+	/* Skip lines to relevant CPU. */
+	for (i = -1; i < cpu.cpu; i++) {
+		if (!read_until_char(&io, '\n'))
+			return -EINVAL;
+	}
+	/* Skip to "cpu". */
+	if (io__get_char(&io) != 'c') return -EINVAL;
+	if (io__get_char(&io) != 'p') return -EINVAL;
+	if (io__get_char(&io) != 'u') return -EINVAL;
+
+	/* Skip N of cpuN. */
+	if (!read_until_char(&io, ' '))
+		return -EINVAL;
+
+	i = 1;
+	while (true) {
+		if (io__get_dec(&io, val) != ' ')
+			break;
+		if (field == i)
+			return 0;
+		i++;
+	}
+	return -EINVAL;
+}
+
+static int read_pid_stat_field(int fd, int field, __u64 *val)
+{
+	char buf[256];
+	struct io io;
+	int c, i;
+
+	io__init(&io, fd, buf, sizeof(buf));
+	if (io__get_dec(&io, val) != ' ')
+		return -EINVAL;
+	if (field == 1)
+		return 0;
+
+	/* Skip comm. */
+	if (io__get_char(&io) != '(' || !read_until_char(&io, ')'))
+		return -EINVAL;
+	if (field == 2)
+		return -EINVAL; /* String can't be returned. */
+
+	/* Skip state */
+	if (io__get_char(&io) != ' ' || io__get_char(&io) == -1)
+		return -EINVAL;
+	if (field == 3)
+		return -EINVAL; /* String can't be returned. */
+
+	/* Loop over numeric fields*/
+	if (io__get_char(&io) != ' ')
+		return -EINVAL;
+
+	i = 4;
+	while (true) {
+		c = io__get_dec(&io, val);
+		if (c == -1)
+			return -EINVAL;
+		if (c == -2) {
+			/* Assume a -ve was read */
+			c = io__get_dec(&io, val);
+			*val *= -1;
+		}
+		if (c != ' ')
+			return -EINVAL;
+		if (field == i)
+			return 0;
+		i++;
+	}
+	return -EINVAL;
+}
+
+int evsel__tool_pmu_prepare_open(struct evsel *evsel,
+				 struct perf_cpu_map *cpus,
+				 int nthreads)
+{
+	if ((evsel__tool_event(evsel) == PERF_TOOL_SYSTEM_TIME ||
+	     evsel__tool_event(evsel) == PERF_TOOL_USER_TIME) &&
+	    !evsel->start_times) {
+		evsel->start_times = xyarray__new(perf_cpu_map__nr(cpus),
+						  nthreads,
+						  sizeof(__u64));
+		if (!evsel->start_times)
+			return -ENOMEM;
+	}
+	return 0;
+}
+
+#define FD(e, x, y) (*(int *)xyarray__entry(e->core.fd, x, y))
+
+int evsel__tool_pmu_open(struct evsel *evsel,
+			 struct perf_thread_map *threads,
+			 int start_cpu_map_idx, int end_cpu_map_idx)
+{
+	enum perf_tool_event ev = evsel__tool_event(evsel);
+	int pid = -1, idx = 0, thread = 0, nthreads, err = 0, old_errno;
+
+	if (ev == PERF_TOOL_DURATION_TIME) {
+		if (evsel->core.attr.sample_period) /* no sampling */
+			return -EINVAL;
+		evsel->start_time = rdclock();
+		return 0;
+	}
+
+	if (evsel->cgrp)
+		pid = evsel->cgrp->fd;
+
+	nthreads = perf_thread_map__nr(threads);
+	for (idx = start_cpu_map_idx; idx < end_cpu_map_idx; idx++) {
+		for (thread = 0; thread < nthreads; thread++) {
+			if (thread >= nthreads)
+				break;
+
+			if (!evsel->cgrp && !evsel->core.system_wide)
+				pid = perf_thread_map__pid(threads, thread);
+
+			if (ev == PERF_TOOL_USER_TIME || ev == PERF_TOOL_SYSTEM_TIME) {
+				bool system = ev == PERF_TOOL_SYSTEM_TIME;
+				__u64 *start_time = NULL;
+				int fd;
+
+				if (evsel->core.attr.sample_period) {
+					/* no sampling */
+					err = -EINVAL;
+					goto out_close;
+				}
+				if (pid > -1) {
+					char buf[64];
+
+					snprintf(buf, sizeof(buf), "/proc/%d/stat", pid);
+					fd = open(buf, O_RDONLY);
+					evsel->pid_stat = true;
+				} else {
+					fd = open("/proc/stat", O_RDONLY);
+				}
+				FD(evsel, idx, thread) = fd;
+				if (fd < 0) {
+					err = -errno;
+					goto out_close;
+				}
+				start_time = xyarray__entry(evsel->start_times, idx, thread);
+				if (pid > -1) {
+					err = read_pid_stat_field(fd, system ? 15 : 14,
+								  start_time);
+				} else {
+					struct perf_cpu cpu;
+
+					cpu = perf_cpu_map__cpu(evsel->core.cpus, idx);
+					err = read_stat_field(fd, cpu, system ? 3 : 1,
+							      start_time);
+				}
+				if (err)
+					goto out_close;
+			}
+
+		}
+	}
+	return 0;
+out_close:
+	if (err)
+		threads->err_thread = thread;
+
+	old_errno = errno;
+	do {
+		while (--thread >= 0) {
+			if (FD(evsel, idx, thread) >= 0)
+				close(FD(evsel, idx, thread));
+			FD(evsel, idx, thread) = -1;
+		}
+		thread = nthreads;
+	} while (--idx >= 0);
+	errno = old_errno;
+	return err;
+}
+
+int evsel__read_tool(struct evsel *evsel, int cpu_map_idx, int thread)
+{
+	__u64 *start_time, cur_time, delta_start;
+	int fd, err = 0;
+	struct perf_counts_values *count;
+	bool adjust = false;
+
+	count = perf_counts(evsel->counts, cpu_map_idx, thread);
+
+	switch (evsel__tool_event(evsel)) {
+	case PERF_TOOL_DURATION_TIME:
+		/*
+		 * Pretend duration_time is only on the first CPU and thread, or
+		 * else aggregation will scale duration_time by the number of
+		 * CPUs/threads.
+		 */
+		start_time = &evsel->start_time;
+		if (cpu_map_idx == 0 && thread == 0)
+			cur_time = rdclock();
+		else
+			cur_time = *start_time;
+		break;
+	case PERF_TOOL_USER_TIME:
+	case PERF_TOOL_SYSTEM_TIME: {
+		bool system = evsel__tool_event(evsel) == PERF_TOOL_SYSTEM_TIME;
+
+		start_time = xyarray__entry(evsel->start_times, cpu_map_idx, thread);
+		fd = FD(evsel, cpu_map_idx, thread);
+		lseek(fd, SEEK_SET, 0);
+		if (evsel->pid_stat) {
+			/* The event exists solely on 1 CPU. */
+			if (cpu_map_idx == 0)
+				err = read_pid_stat_field(fd, system ? 15 : 14, &cur_time);
+			else
+				cur_time = 0;
+		} else {
+			/* The event is for all threads. */
+			if (thread == 0) {
+				struct perf_cpu cpu = perf_cpu_map__cpu(evsel->core.cpus,
+									cpu_map_idx);
+
+				err = read_stat_field(fd, cpu, system ? 3 : 1, &cur_time);
+			} else {
+				cur_time = 0;
+			}
+		}
+		adjust = true;
+		break;
+	}
+	case PERF_TOOL_NONE:
+	case PERF_TOOL_MAX:
+	default:
+		err = -EINVAL;
+	}
+	if (err)
+		return err;
+
+	delta_start = cur_time - *start_time;
+	if (adjust) {
+		__u64 ticks_per_sec = sysconf(_SC_CLK_TCK);
+
+		delta_start *= 1000000000 / ticks_per_sec;
+	}
+	count->val    = delta_start;
+	count->ena    = count->run = delta_start;
+	count->lost   = 0;
+	return 0;
+}
+
+struct perf_pmu *perf_pmus__tool_pmu(void)
+{
+	static struct perf_pmu tool = {
+		.name = "tool",
+		.type = PERF_PMU_TYPE_TOOL,
+		.aliases = LIST_HEAD_INIT(tool.aliases),
+		.caps = LIST_HEAD_INIT(tool.caps),
+		.format = LIST_HEAD_INIT(tool.format),
+	};
+
+	return &tool;
+}
diff --git a/tools/perf/util/tool_pmu.h b/tools/perf/util/tool_pmu.h
new file mode 100644
index 0000000000000..05a4052c8b9d8
--- /dev/null
+++ b/tools/perf/util/tool_pmu.h
@@ -0,0 +1,51 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __TOOL_PMU_H
+#define __TOOL_PMU_H
+
+#include "pmu.h"
+
+struct evsel;
+struct perf_thread_map;
+struct print_callbacks;
+
+enum perf_tool_event {
+	PERF_TOOL_NONE = 0,
+	PERF_TOOL_DURATION_TIME = 1,
+	PERF_TOOL_USER_TIME = 2,
+	PERF_TOOL_SYSTEM_TIME = 3,
+
+	PERF_TOOL_MAX,
+};
+
+#define perf_tool_event__for_each_event(ev)				\
+	for ((ev) = PERF_TOOL_DURATION_TIME; (ev) < PERF_TOOL_MAX; ev++)
+
+static inline size_t tool_pmu__num_events(void)
+{
+	return PERF_TOOL_MAX - 1;
+}
+
+const char *perf_tool_event__to_str(enum perf_tool_event ev);
+enum perf_tool_event perf_tool_event__from_str(const char *str);
+int tool_pmu__config_terms(struct perf_event_attr *attr,
+			   struct parse_events_terms *terms,
+			   struct parse_events_error *err);
+int tool_pmu__for_each_event_cb(struct perf_pmu *pmu, void *state, pmu_event_callback cb);
+
+bool perf_pmu__is_tool(const struct perf_pmu *pmu);
+
+
+bool evsel__is_tool(const struct evsel *evsel);
+enum perf_tool_event evsel__tool_event(const struct evsel *evsel);
+const char *evsel__tool_pmu_event_name(const struct evsel *evsel);
+int evsel__tool_pmu_prepare_open(struct evsel *evsel,
+				 struct perf_cpu_map *cpus,
+				 int nthreads);
+int evsel__tool_pmu_open(struct evsel *evsel,
+			 struct perf_thread_map *threads,
+			 int start_cpu_map_idx, int end_cpu_map_idx);
+int evsel__read_tool(struct evsel *evsel, int cpu_map_idx, int thread);
+
+struct perf_pmu *perf_pmus__tool_pmu(void);
+
+#endif /* __TOOL_PMU_H */
-- 
2.53.0




  parent reply	other threads:[~2026-05-20 18:16 UTC|newest]

Thread overview: 691+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-20 16:13 [PATCH 6.12 000/666] 6.12.91-rc1 review Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 001/666] io_uring/kbuf: use mem_is_zero() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 002/666] blk-cgroup: wait for blkcg cleanup before initializing new disk Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 003/666] fs/omfs: reject s_sys_blocksize smaller than OMFS_DIR_START Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 004/666] fs/mbcache: cancel shrink work before destroying the cache Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 005/666] md/raid1: fix the comparing region of interval tree Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 006/666] drbd: Balance RCU calls in drbd_adm_dump_devices() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 007/666] loop: fix partition scan race between udev and loop_reread_partitions() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 008/666] nilfs2: reject zero bd_oblocknr in nilfs_ioctl_mark_blocks_dirty() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 009/666] blk-cgroup: fix disk reference leak in blkcg_maybe_throttle_current() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 010/666] pstore/ram: fix resource leak when ioremap() fails Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 011/666] erofs: verify metadata accesses for file-backed mounts Greg Kroah-Hartman
2026-05-20 18:21   ` Gao Xiang
2026-05-21 12:55     ` Sasha Levin
2026-05-20 16:13 ` [PATCH 6.12 012/666] md: wake raid456 reshape waiters before suspend Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 013/666] btrfs: pass struct btrfs_inode to clone_copy_inline_extent() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 014/666] btrfs: fix deadlock between reflink and transaction commit when using flushoncommit Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 015/666] ACPI: x86: cmos_rtc: Clean up address space handler driver Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 016/666] ACPI: x86: cmos_rtc: Improve coordination with ACPI TAD driver Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 017/666] devres: fix missing node debug info in devm_krealloc() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 018/666] thermal/drivers/spear: Fix error condition for reading st,thermal-flags Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 019/666] debugfs: check for NULL pointer in debugfs_create_str() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 020/666] debugfs: fix placement of EXPORT_SYMBOL_GPL for debugfs_create_str() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 021/666] soundwire: debugfs: initialize firmware_file to empty string Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 022/666] PCI: use generic driver_override infrastructure Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 023/666] platform/wmi: " Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 024/666] s390/cio: " Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 025/666] bus: fsl-mc: " Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 026/666] irqchip/irq-pic32-evic: Address warning related to wrong printf() formatter Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 027/666] hrtimers: Update the return type of enqueue_hrtimer() Greg Kroah-Hartman
2026-05-20 16:13 ` [PATCH 6.12 028/666] hrtimer: Avoid pointless reprogramming in __hrtimer_start_range_ns() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 029/666] hrtimer: Reduce trace noise in hrtimer_start() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 030/666] sparc/vdso: Always reject undefined references during linking Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 031/666] sparc64: vdso: Link with -z noexecstack Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 032/666] locking: Fix rwlock support in <linux/spinlock_up.h> Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 033/666] firmware: dmi: Correct an indexing error in dmi.h Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 034/666] wifi: mwifiex: Fix memory leak in mwifiex_11n_aggregate_pkt() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 035/666] wifi: rtlwifi: pci: fix possible use-after-free caused by unfinished irq_prepare_bcn_tasklet Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 036/666] bpf: test_run: Fix the null pointer dereference issue in bpf_lwt_xmit_push_encap Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 037/666] dpaa2: add independent dependencies for FSL_DPAA2_SWITCH Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 038/666] dpaa2: compile dpaa2 even CONFIG_FSL_DPAA2_ETH=n Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 039/666] s390/bpf: Zero-extend bpf prog return values and kfunc arguments Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 040/666] params: Replace __modinit with __init_or_module Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 041/666] module: Fix freeing of charp module parameters when CONFIG_SYSFS=n Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 042/666] wifi: mt76: mt7921: Reset ampdu_state state in case of failure in mt76_connac2_tx_check_aggr() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 043/666] wifi: mt76: mt7925: Fix incorrect MLO mode in firmware control Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 044/666] wifi: mt76: mt7615: fix use_cts_prot support Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 045/666] wifi: mt76: mt7915: " Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 046/666] wifi: mt76: mt7925: prevent NULL pointer dereference in mt7925_tx_check_aggr() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 047/666] wifi: mt76: mt7925: prevent NULL vif dereference in mt7925_mac_write_txwi Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 048/666] wifi: mt76: mt7996: fix FCS error flag check in RX descriptor Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 049/666] wifi: mt76: mt7921: Place upper limit on station AID Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 050/666] arm64: cpufeature: Make PMUVer and PerfMon unsigned Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 051/666] wifi: mt76: mt7996: fix struct mt7996_mcu_uni_event Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 052/666] wifi: mt76: mt7915: fix use-after-free bugs in mt7915_mac_dump_work() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 053/666] wifi: mt76: mt7996: fix use-after-free bugs in mt7996_mac_dump_work() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 054/666] wifi: mt76: mt7921: fix 6GHz regulatory update on connection Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 055/666] bpf: Use RCU-safe iteration in dev_map_redirect_multi() SKB path Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 056/666] bpf: Fix variable length stack write over spilled pointers Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 057/666] bpf,arc_jit: Fix missing newline in pr_err messages Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 058/666] wifi: rtw89: phy: fix uninitialized variable access in rtw89_phy_cfo_set_crystal_cap() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 059/666] r8152: fix incorrect register write to USB_UPHY_XTAL Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 060/666] powerpc/crash: fix backup region offset update to elfcorehdr Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 061/666] powerpc/crash: Update backup region offset in elfcorehdr on memory hotplug Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 062/666] selftests/powerpc: Suppress -Wmaybe-uninitialized with GCC 15 Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 063/666] macvlan: annotate data-races around port->bc_queue_len_used Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 064/666] bpf: fix end-of-list detection in cgroup_storage_get_next_key() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 065/666] bpf: Fix stale offload->prog pointer after constant blinding Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 066/666] wifi: brcmfmac: Fix error pointer dereference Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 067/666] wifi: mac80211: handle VHT EXT NSS in ieee80211_determine_our_sta_mode() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 068/666] bpf: Drop task_to_inode and inet_conn_established from lsm sleepable hooks Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 069/666] bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 070/666] wifi: ath10k: fix station lookup failure during disconnect Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 071/666] ACPI: AGDI: fix missing newline in error message Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 072/666] arm64: kexec: Remove duplicate allocation for trans_pgd Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 073/666] net: bcmgenet: fix off-by-one in bcmgenet_put_txcb Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 074/666] net: bcmgenet: add bcmgenet_has_* helpers Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 075/666] net: bcmgenet: move DESC_INDEX flow to ring 0 Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 076/666] net: bcmgenet: support reclaiming unsent Tx packets Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 077/666] net: bcmgenet: switch to use 64bit statistics Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 078/666] net: bcmgenet: fix racing timeout handler Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 079/666] eth: fbnic: Use wake instead of start Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 080/666] netfilter: xt_socket: enable defrag after all other checks Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 081/666] netfilter: nft_fwd_netdev: check ttl/hl before forwarding Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 082/666] bpf: fix mm lifecycle in open-coded task_vma iterator Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 083/666] bpf: switch task_vma iterator from mmap_lock to per-VMA locks Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 084/666] bpf: return VMA snapshot from task_vma iterator Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 085/666] bpf: Fix RCU stall in bpf_fd_array_map_clear() Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 086/666] net: hamradio: 6pack: fix uninit-value in sixpack_receive_buf Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 087/666] bpf: Relax scalar id equivalence for state pruning Greg Kroah-Hartman
2026-05-20 16:14 ` [PATCH 6.12 088/666] bpf: Enforce regsafe base id consistency for BPF_ADD_CONST scalars Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 089/666] selftests/bpf: fix __jited_unpriv tag name Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 090/666] net/sched: act_ct: Only release RCU read lock after ct_ft Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 091/666] selftests: netfilter: nft_tproxy.sh: adjust to socat changes Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 092/666] net: airoha: Implement BQL support Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 093/666] net: airoha: Add missing RX_CPU_IDX() configuration in airoha_qdma_cleanup_rx_queue() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 094/666] bpf: Allow instructions with arena source and non-arena dest registers Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 095/666] net/rds: Optimize rds_ib_laddr_check Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 096/666] net/rds: Restrict use of RDS/IB to the initial network namespace Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 097/666] bpf: Fix OOB in pcpu_init_value Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 098/666] ppp: require CAP_NET_ADMIN in target netns for unattached ioctls Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 099/666] net: ipa: Fix programming of QTIME_TIMESTAMP_CFG Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 100/666] net: ipa: Fix decoding EV_PER_EE for IPA v5.0+ Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 101/666] dt-bindings: net: dsa: nxp,sja1105: make spi-cpol optional for sja1110 Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 102/666] net: phy: fix a return path in get_phy_c45_ids() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 103/666] net/mlx5e: Fix features not applied during netdev registration Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 104/666] net/mlx5e: IPsec, fix ASO poll timeout with read_poll_timeout_atomic() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 105/666] bpf: reject short IPv4/IPv6 inputs in bpf_prog_test_run_skb Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 106/666] Bluetooth: L2CAP: Fix printing wrong information if SDU length exceeds MTU Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 107/666] Bluetooth: hci_ldisc: Clear HCI_UART_PROTO_INIT on error Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 108/666] Bluetooth: fix locking in hci_conn_request_evt() with HCI_PROTO_DEFER Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 109/666] Bluetooth: l2cap: Add missing chan lock in l2cap_ecred_reconf_rsp Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 110/666] Bluetooth: SCO: check for codecs->num_codecs == 1 before assigning to sco_pi(sk)->codec Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 111/666] net: phy: qcom: at803x: Use the correct bit to disable extended next page Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 112/666] ipv4: udp: fix typos in comments Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 113/666] ipv6: " Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 114/666] udp: Force compute_score to always inline Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 115/666] tcp: Dont set treq->req_usec_ts in cookie_tcp_reqsk_init() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 116/666] sctp: fix missing encap_port propagation for GSO fragments Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 117/666] net, bpf: fix null-ptr-deref in xdp_master_redirect() for down master Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 118/666] drm/komeda: fix integer overflow in AFBC framebuffer size check Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 119/666] ASoC: SOF: ipc3: Use standard dev_dbg API Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 120/666] ASoC: add symmetric_ prefix for dai->rate/channels/sample_bits Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 121/666] ASoC: soc-compress: use function to clear symmetric params Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 122/666] drm/sun4i: backend: fix error pointer dereference Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 123/666] ASoC: sti: Return errors from regmap_field_alloc() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 124/666] ASoC: sti: use managed regmap_field allocations Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 125/666] dm cache: fix null-deref with concurrent writes in passthrough mode Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 126/666] dm cache: fix write path cache coherency " Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 127/666] dm cache: fix write hang " Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 128/666] dm cache policy smq: fix missing locks in invalidating cache blocks Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 129/666] dm cache: fix concurrent write failure in passthrough mode Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 130/666] dm cache: support shrinking the origin device Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 131/666] dm cache: fix dirty mapping checking in passthrough mode switching Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 132/666] platform/chrome: chromeos_tbmc: Drop wakeup source on remove Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 133/666] PCI: endpoint: Align pci_epc_set_msix(), pci_epc_ops::set_msix() nr_irqs encoding Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 134/666] PCI: dwc: ep: Fix MSI-X Table Size configuration in dw_pcie_ep_set_msix() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 135/666] PCI: dwc: Invoke post_init in dw_pcie_resume_noirq() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 136/666] PCI: dwc: Perform cleanup in the error path of dw_pcie_resume_noirq() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 137/666] dm cache metadata: fix memory leak on metadata abort retry Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 138/666] dm log: fix out-of-bounds write due to region_count overflow Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 139/666] drm/bridge: cadence: cdns-mhdp8546-core: Set the mhdp connector earlier in atomic_enable() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 140/666] drm/bridge: cadence: cdns-mhdp8546-core: Add mode_valid hook to drm_bridge_funcs Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 141/666] drm/bridge: cadence: cdns-mhdp8546-core: Handle HDCP state in bridge atomic check Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 142/666] spi: spi-nxp-fspi: enable runtime pm for fspi Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 143/666] spi: nxp-fspi: Use reinit_completion() for repeated operations Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 144/666] spi: fsl-qspi: " Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 145/666] media: i2c: og01a1b: Replace client->dev usage Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 146/666] media: i2c: og01a1b: Fix V4L2 subdevice data initialization on probe Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 147/666] selftests/sched_ext: Add missing error check for exit__load() Greg Kroah-Hartman
2026-05-20 16:15 ` [PATCH 6.12 148/666] drm/v3d: Handle error from drm_sched_entity_init() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 149/666] drm/sun4i: Fix resource leaks Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 150/666] drm/amdgpu: Add default case in DVI mode validation Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 151/666] dm init: ensure device probing has finished in dm-mod.waitfor= Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 152/666] fbdev: matroxfb: Mark variable with __maybe_unused to avoid W=1 build break Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 153/666] crypto: tegra - finalize crypto req on error Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 154/666] crypto: tegra - Transfer HASH init function to crypto engine Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 155/666] crypto: tegra - Reserve keyslots to allocate dynamically Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 156/666] crypto: tegra - Disable softirqs before finalizing request Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 157/666] crypto: atmel - Use unregister_{aeads,ahashes,skciphers} Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 158/666] crypto: atmel-aes - guard unregister on error in atmel_aes_register_algs Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 159/666] padata: Remove cpu online check from cpu add and removal Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 160/666] padata: Put CPU offline callback in ONLINE section to allow failure Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 161/666] PCI: dwc: rcar-gen4: Change EPC BAR alignment to 4K as per the documentation Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 162/666] drm/amdgpu/gfx10: look at the right prop for gfx queue priority Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 163/666] drm/amdgpu/gfx11: " Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 164/666] spi: hisi-kunpeng: prevent infinite while() loop in hisi_spi_flush_fifo Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 165/666] drm/imagination: Switch reset_reason fields from enum to u32 Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 166/666] iommu/tegra241-cmdqv: Set supports_cmd op in tegra241_vcmdq_hw_init() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 167/666] drm/msm/dpu: fix mismatch between power and frequency Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 168/666] drm/msm/dsi: add the missing parameter description Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 169/666] drm/msm/dsi: fix bits_per_pclk Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 170/666] drm/msm/dsi: fix hdisplay calculation for CMD mode panel Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 171/666] drm/msm/dsi: rename MSM8998 DSI version from V2_2_0 to V2_0_0 Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 172/666] drm/panel: sharp-ls043t1le01: make use of prepare_prev_first Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 173/666] drm/panel: simple: Correct G190EAN01 prepare timing Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 174/666] PCI: qcom: Advertise Hotplug Slot Capability with no Command Completion support Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 175/666] ALSA: core: Validate compress device numbers without dynamic minors Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 176/666] drm/amd/pm/ci: Use highest MCLK on CI when MCLK DPM is disabled Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 177/666] drm/amd/pm/ci: Disable MCLK DPM on problematic CI ASICs Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 178/666] drm/amd/pm/smu7: Fix SMU7 voltage dependency on display clock Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 179/666] drm/amd/pm/ci: Fix powertune defaults for Hawaii 0x67B0 Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 180/666] drm/amd/pm/ci: Clear EnabledForActivity field for memory levels Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 181/666] drm/amd/pm/ci: Fill DW8 fields from SMC Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 182/666] drm/amd/pm/smu7: Add SCLK cap for quirky Hawaii board Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 183/666] drm/amdgpu: add amdgpu_device reference in ip block Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 184/666] drm/amdgpu: update the handle ptr in dump_ip_state Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 185/666] drm/amdgpu: update the handle ptr in early_init Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 186/666] drm/amdgpu/uvd4.2: Dont initialize UVD 4.2 when DPM is disabled Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 187/666] hwmon: Switch back to struct platform_driver::remove() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 188/666] hwmon: (aspeed-g6-pwm-tach): remove redundant driver remove callback Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 189/666] ALSA: hda/realtek: fix code style (ERROR: else should follow close brace }) Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 190/666] ASoC: SOF: Intel: hda: Place check before dereference Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 191/666] drm/msm/a6xx: Fix HLSQ register dumping Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 192/666] drm/msm/shrinker: Fix can_block() logic Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 193/666] drm/msm/a6xx: Fix dumping A650+ debugbus blocks Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 194/666] drm/msm/a6xx: Use barriers while updating HFI Q headers Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 195/666] pmdomain: ti: omap_prm: Fix a reference leak on device node Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 196/666] pmdomain: imx: scu-pd: Fix device_node reference leak during ->probe() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 197/666] PM: domains: De-constify fields in struct dev_pm_domain_attach_data Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 198/666] ASoC: fsl_micfil: Add access property for "VAD Detected" Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 199/666] ASoC: fsl_micfil: Fix event generation in hwvad_put_enable() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 200/666] ASoC: fsl_micfil: Fix event generation in hwvad_put_init_mode() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 201/666] ASoC: fsl_micfil: Fix event generation in micfil_put_dc_remover_state() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 202/666] ASoC: fsl_micfil: Fix event generation in micfil_quality_set() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 203/666] ASoC: fsl_xcvr: Fix event generation in fsl_xcvr_arc_mode_put() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 204/666] ASoC: fsl_xcvr: Fix event generation in fsl_xcvr_mode_put() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 205/666] ASoC: fsl_easrc: Check the variable range in fsl_easrc_iec958_put_bits() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 206/666] ASoC: fsl_easrc: Fix value type in fsl_easrc_iec958_get_bits() Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 207/666] ASoC: fsl_easrc: Change the type for iec958 channel status controls Greg Kroah-Hartman
2026-05-20 16:16 ` [PATCH 6.12 208/666] iommu/amd: Remove protection_domain.dev_cnt variable Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 209/666] iommu/amd: xarray to track protection_domain->iommu list Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 210/666] iommu/amd: Do not detach devices in domain free path Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 211/666] iommu/amd: Reduce domain lock scope in attach device path Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 212/666] iommu/amd: Rearrange attach device code Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 213/666] iommu/amd: Convert dev_data lock from spinlock to mutex Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 214/666] iommu/amd: Introduce helper function to update 256-bit DTE Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 215/666] iommu/amd: Introduce helper function get_dte256() Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 216/666] iommu/amd: Fix clone_alias() to use the original devices devid Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 217/666] ASoC: qcom: qdsp6: topology: check widget type before accessing data Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 218/666] crypto: qat - introduce fuse array Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 219/666] crypto: qat - disable 4xxx AE cluster when lead engine is fused off Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 220/666] crypto: qat - disable 420xx " Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 221/666] crypto: qat - fix type mismatch in RAS sysfs show functions Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 222/666] crypto: qat - use swab32 macro Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 223/666] ASoC: rsnd: Fix potential out-of-bounds access of component_dais[] Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 224/666] PCI: Enable AtomicOps only if Root Port supports them Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 225/666] PCI: mediatek-gen3: Prevent leaking IRQ domains when IRQ not found Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 226/666] selftests/mm: skip migration tests if NUMA is unavailable Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 227/666] Documentation: fix a hugetlbfs reservation statement Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 228/666] selftest: memcg: skip memcg_sock test if address family not supported Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 229/666] ALSA: scarlett2: Add missing sentinel initializer field Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 230/666] ASoC: SOF: compress: return the configured codec from get_params Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 231/666] PCI/NPEM: Set LED_HW_PLUGGABLE for hotplug-capable ports Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 232/666] PCI: tegra194: Fix polling delay for L2 state Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 233/666] PCI: tegra194: Increase LTSSM poll time on surprise link down Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 234/666] PCI: tegra194: Disable LTSSM after transition to Detect " Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 235/666] PCI: tegra194: Rename root_bus to root_port_bus in tegra_pcie_downstream_dev_to_D0() Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 236/666] PCI: tegra194: Dont force the device into the D0 state before L2 Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 237/666] PCI: tegra194: Disable PERST# IRQ only in Endpoint mode Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 238/666] PCI: tegra194: Use devm_gpiod_get_optional() to parse "nvidia,refclk-select" Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 239/666] PCI: tegra194: Disable direct speed change for Endpoint mode Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 240/666] PCI: tegra194: Set LTR message request before PCIe link up in " Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 241/666] PCI: tegra194: Allow system suspend when the Endpoint link is not up Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 242/666] PCI: tegra194: Free up Endpoint resources during remove() Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 243/666] PCI: tegra194: Use DWC IP core version Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 244/666] PCI: dwc: Apply ECRC workaround to DesignWare 5.00a as well Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 245/666] PCI: tegra194: Fix CBB timeout caused by DBI access before core power-on Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 246/666] spi: mtk-snfi: unregister ECC engine on probe failure and remove() callback Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 247/666] ALSA: sc6000: Keep the programmed board state in card-private data Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 248/666] dm cache: fix missing return in invalidate_committeds error path Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 249/666] crypto: jitterentropy - replace long-held spinlock with mutex Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 250/666] ALSA: hda/realtek - fixed speaker no sound update Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 251/666] gfs2: Call unlock_new_inode before d_instantiate Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 252/666] net/socket.c: switch to CLASS(fd) Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 253/666] fdget(), trivial conversions Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 254/666] fanotify: call fanotify_events_supported() before path_permission() and security_path_notify() Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 255/666] ktest: Avoid undef warning when WARNINGS_FILE is unset Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 256/666] ktest: Honor empty per-test option overrides Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 257/666] ktest: Run POST_KTEST hooks on failure and cancellation Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 258/666] quota: Fix race of dquot_scan_active() with quota deactivation Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 259/666] gfs2: add some missing log locking Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 260/666] gfs2: prevent NULL pointer dereference during unmount Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 261/666] efi/capsule-loader: fix incorrect sizeof in phys array reallocation Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 262/666] ksmbd: fix use-after-free from async crypto on Qualcomm crypto engine Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 263/666] arm64: dts: mediatek: mt8365: Describe infracfg-nao as a pure syscon Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 264/666] ARM: dts: mediatek: mt7623: fix efuse fallback compatible Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 265/666] memory: tegra124-emc: Fix dll_change check Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 266/666] memory: tegra30-emc: " Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 267/666] arm64: dts: imx8-apalis: Fix LEDs name collision Greg Kroah-Hartman
2026-05-20 16:17 ` [PATCH 6.12 268/666] arm64: dts: rockchip: Make Jaguar PCIe-refclk pin use pull-up config Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 269/666] arm64: dts: imx8mp-evk: Enable pull select bit for PCIe regulator GPIO (M.2 W_DISABLE1) Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 270/666] iommufd: vfio compatibility extension check for noiommu mode Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 271/666] arm64: dts: mediatek: mt6795: Fix gpio-ranges pin count Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 272/666] arm64: dts: mediatek: mt7981b: " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 273/666] arm64: dts: mediatek: mt7986a: " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 274/666] arm64: dts: qcom: msm8953-xiaomi-vince: correct wled ovp value Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 275/666] arm64: dts: qcom: msm8953-xiaomi-daisy: fix backlight Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 276/666] arm64: dts: rockchip: Fix Bluetooth stability on LCKFB TaiShan Pi Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 277/666] arm64: dts: rockchip: Correct Fan Supply for Gameforce Ace Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 278/666] arm64: dts: rockchip: Correct Joystick Axes on " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 279/666] soc: qcom: ocmem: make the core clock optional Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 280/666] soc: qcom: ocmem: register reasons for probe deferrals Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 281/666] soc: qcom: ocmem: return -EPROBE_DEFER is ocmem is not available Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 282/666] bus: rifsc: fix RIF configuration check for peripherals Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 283/666] arm64: dts: qcom: sm8450: Fix GIC_ITS range length Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 284/666] arm64: dts: qcom: sm8550: " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 285/666] arm64: dts: qcom: sm8650: " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 286/666] arm64: dts: qcom: sm8550: Fix xo clock supply of platform SD host controller Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 287/666] arm64: dts: qcom: sm8650: Fix xo clock supply of " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 288/666] arm64: dts: qcom: sm8450: Enable UHS-I SDR50 and SDR104 SD card modes Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 289/666] arm64: dts: qcom: sm8550: " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 290/666] arm64: dts: qcom: sm8650: " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 291/666] arm64: dts: qcom: sm7225-fairphone-fp4: Fix conflicting bias pinctrl Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 292/666] arm64: dts: qcom: sdm845-xiaomi-beryllium: Mark l1a regulator as powered during boot Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 293/666] arm64: dts: ti: k3-am62p5-sk: Disable MMC1 internal pulls on data pins Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 294/666] arm64: dts: ti: k3-am62-lp-sk: Enable internal pulls for MMC0 " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 295/666] arm64: dts: ti: k3-am62-verdin: Fix SPI_1 GPIO CS pinctrl label Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 296/666] arm64: dts: freescale: imx8mp-tqma8mpql-mba8mp-ras314: fix UART1 RTS/CTS muxing Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 297/666] arm64: dts: lx2160a: change i2c0 (iic1) pinmux mask to one bit Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 298/666] arm64: dts: lx2160a: remove duplicate pinmux nodes Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 299/666] arm64: dts: lx2160a: rename pinmux nodes for readability Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 300/666] arm64: dts: lx2160a: add sda gpio references for i2c bus recovery Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 301/666] arm64: dts: lx2160a: change zeros to hexadecimal in pinmux nodes Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 302/666] arm64: dts: lx2160a: complete pinmux for rcwsr12 configuration word Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 303/666] arm64: dts: imx8qm-mek: switch Type-C connector power-role to dual Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 304/666] arm64: dts: imx8qxp-mek: " Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 305/666] soc/tegra: cbb: Set ERD on resume for err interrupt Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 306/666] unshare: fix nsproxy leak in ksys_unshare() on set_cred_ucounts() failure Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 307/666] ocfs2/dlm: validate qr_numregions in dlm_match_regions() Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 308/666] ocfs2/dlm: fix off-by-one in dlm_match_regions() region comparison Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 309/666] soc: qcom: llcc: fix v1 SB syndrome register offset Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 310/666] soc: qcom: aoss: compare against normalized cooling state Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 311/666] arm64: dts: qcom: sm8250: Add missing CPU7 3.09GHz OPP Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 312/666] ARM: OMAP1: Fix DEBUG_LL and earlyprintk on OMAP16XX Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 313/666] arm64/xor: fix conflicting attributes for xor_block_template Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 314/666] ARM: dts: imx27-eukrea: replace interrupts with interrupts-extended Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 315/666] firmware: arm_ffa: Use the correct buffer size during RXTX_MAP Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 316/666] ocfs2: fix listxattr handling when the buffer is full Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 317/666] ocfs2: validate bg_bits during freefrag scan Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 318/666] ocfs2: validate group add input before caching Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 319/666] dmaengine: dw-axi-dmac: Remove unnecessary return statement from void function Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 320/666] soundwire: bus: demote UNATTACHED state warnings to dev_dbg() Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 321/666] dmaengine: mxs-dma: Fix missing return value from of_dma_controller_register() Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 322/666] soundwire: cadence: Clear message complete before signaling waiting thread Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 323/666] tracing: Rebuild full_name on each hist_field_name() call Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 324/666] hte: tegra194: remove Kconfig dependency on Tegra194 SoC Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 325/666] remoteproc: xlnx: Fix sram property parsing Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 326/666] ima: check return value of crypto_shash_final() in boot aggregate Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 327/666] HID: asus: make asus_resume adhere to linux kernel coding standards Greg Kroah-Hartman
2026-05-20 16:18 ` [PATCH 6.12 328/666] HID: asus: do not abort probe when not necessary Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 329/666] mtd: physmap_of_gemini: Fix disabled pinctrl state check Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 330/666] ima_fs: dont bother with removal of files in directory well be removing Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 331/666] ima_fs: get rid of lookup-by-dentry stuff Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 332/666] ima_fs: Correctly create securityfs files for unsupported hash algos Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 333/666] dt-bindings: interrupt-controller: arm,gic-v3: Fix EPPI range Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 334/666] mtd: spi-nor: core: correct the op.dummy.nbytes when check read operations Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 335/666] mtd: spi-nor: sfdp: introduce smpt_read_dummy fixup hook Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 336/666] mtd: spi-nor: sfdp: introduce smpt_map_id " Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 337/666] mtd: spi-nor: update spi_nor_fixups::post_sfdp() documentation Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 338/666] mtd: spi-nor: swp: check SR_TB flag when getting tb_mask Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 339/666] mtd: parsers: ofpart: call of_node_put() only in ofpart_fail path Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 340/666] mtd: parsers: ofpart: call of_node_get() for dedicated subpartitions Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 341/666] cxl/pci: Check memdev driver binding status in cxl_reset_done() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 342/666] mtd: rawnand: sunxi: fix sunxi_nfc_hw_ecc_read_extra_oob Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 343/666] HID: usbhid: fix deadlock in hid_post_reset() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 344/666] ext4: fix possible null-ptr-deref in mbt_kunit_exit() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 345/666] bpf, arm64: Fix off-by-one in check_imm signed range check Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 346/666] bpf, riscv: Remove redundant bpf_flush_icache() after pack allocator finalize Greg Kroah-Hartman
2026-05-22  9:57   ` Harshit Mogalapalli
2026-05-22 13:12     ` Sasha Levin
2026-05-20 16:19 ` [PATCH 6.12 347/666] bpf, sockmap: Fix af_unix iter deadlock Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 348/666] bpf, sockmap: Fix af_unix null-ptr-deref in proto update Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 349/666] bpf, sockmap: Take state lock for af_unix iter Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 350/666] bpf: Fix precedence bug in convert_bpf_ld_abs alignment check Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 351/666] bpf: Fix NULL deref in map_kptr_match_type for scalar regs Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 352/666] bpf: allow UTF-8 literals in bpf_bprintf_prepare() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 353/666] libbpf: Change log level of BTF loading error message Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 354/666] libbpf: Stringify errno in log messages in libbpf.c Greg Kroah-Hartman
2026-05-20 22:01   ` Salvatore Bonaccorso
2026-05-21 12:07     ` Harshit Mogalapalli
2026-05-21 12:55     ` Sasha Levin
2026-05-21 21:13       ` Peter Schneider
2026-05-20 16:19 ` [PATCH 6.12 355/666] libbpf: Prevent double close and leak of btf objects Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 356/666] bpf: Validate node_id in arena_alloc_pages() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 357/666] bpf, arm32: Reject BPF-to-BPF calls and callbacks in the JIT Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 358/666] pinctrl: pinctrl-pic32: Fix resource leak Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 359/666] pinctrl: cy8c95x0: remove duplicate error message Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 360/666] pinctrl: cy8c95x0: Unify messages with help of dev_err_probe() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 361/666] pinctrl: cy8c95x0: Avoid returning positive values to user space Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 362/666] perf branch: Avoid incrementing NULL Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 363/666] perf: tools: cs-etm: Fix print issue for Coresight debug in ETE/TRBE trace Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 364/666] pinctrl: realtek: Fix function signature for config argument Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 365/666] pinctrl: abx500: Fix type of argument variable Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 366/666] pinctrl: renesas: rzg2l: Fix save/restore of {IOLH,IEN,PUPD,SMT} registers Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 367/666] perf lock: Fix option value type in parse_max_stack Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 368/666] perf stat: Fix opt->value type for parse_cache_level Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 369/666] perf tools: Fix module symbol resolution for non-zero .text sh_addr Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 370/666] perf expr: Return -EINVAL for syntax error in expr__find_ids() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 371/666] ipmi: ssif_bmc: fix missing check for copy_to_user() partial failure Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 372/666] ipmi: ssif_bmc: fix message desynchronization after truncated response Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 373/666] ipmi: ssif_bmc: change log level to dbg in irq callback Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 374/666] perf evsel: Add alternate_hw_config and use in evsel__match Greg Kroah-Hartman
2026-05-20 16:19 ` Greg Kroah-Hartman [this message]
2026-05-24 14:46   ` [PATCH 6.12 375/666] perf tool_pmu: Factor tool events into their own PMU Salvatore Bonaccorso
2026-05-26 23:21     ` Tyler Stachecki
2026-05-27  5:28       ` Namhyung Kim
2026-05-20 16:19 ` [PATCH 6.12 376/666] perf python: Add parse_events function Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 377/666] perf cgroup: Update metric leader in evlist__expand_cgroup Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 378/666] perf maps: Fix copy_from that can break sorted by name order Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 379/666] perf util: Kill die() prototype, dead for a long time Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 380/666] reset: replace boolean parameters with flags parameter Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 381/666] reset: Add devres helpers to request pre-deasserted reset controls Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 382/666] i3c: master: dw-i3c: Fix missing reset assertion in remove() callback Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 383/666] i3c: dw: Fix memory leak in dw_i3c_master_i3c_xfers() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 384/666] i3c: master: Fix error codes at send_ccc_cmd Greg Kroah-Hartman
2026-05-22 10:26   ` Harshit Mogalapalli
2026-05-22 13:12     ` Sasha Levin
2026-05-20 16:19 ` [PATCH 6.12 385/666] i3c: mipi-i3c-hci: fix IBI payload length calculation for final status Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 386/666] backlight: sky81452-backlight: Check return value of devm_gpiod_get_optional() in sky81452_bl_parse_dt() Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 387/666] platform/surface: surfacepro3_button: Drop wakeup source on remove Greg Kroah-Hartman
2026-05-20 16:19 ` [PATCH 6.12 388/666] leds: lgm-sso: Remove duplicate assignments for priv->mmap Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 389/666] tty: hvc_iucv: fix off-by-one in number of supported devices Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 390/666] platform/x86: panasonic-laptop: Fix OPTD notifier registration and cleanup Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 391/666] mfd: mc13xxx-core: Fix memory leak in mc13xxx_add_subdevice_pdata() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 392/666] nfs/blocklayout: Fix compilation error (`make W=1`) in bl_write_pagelist() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 393/666] platform/x86: asus-wmi: adjust screenpad power/brightness handling Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 394/666] platform/x86: asus-wmi: fix screenpad brightness range Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 395/666] tty: serial: ip22zilog: Fix section mispatch warning Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 396/666] fs/ntfs3: terminate the cached volume label after UTF-8 conversion Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 397/666] platform/x86: dell_rbu: avoid uninit value usage in packet_size_write() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 398/666] platform/x86: dell-wmi-sysman: bound enumeration string aggregation Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 399/666] RDMA/core: Prefer NLA_NUL_STRING Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 400/666] clk: qcom: dispcc-sm8450: use RCG2 ops for DPTX1 AUX clock source Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 401/666] scsi: sg: Fix sysctl sg-big-buff register during sg_init() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 402/666] scsi: sg: Resolve soft lockup issue when opening /dev/sgX Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 403/666] clk: qcom: dispcc-sc8280xp: remove CLK_SET_RATE_PARENT from byte_div_clk_src dividers Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 404/666] clk: qcom: dispcc-sm4450: Fix DSI byte clock rate setting Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 405/666] scsi: target: core: Fix integer overflow in UNMAP bounds check Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 406/666] dt-bindings: clock: qcom,gcc-sc8180x: Add missing GDSCs Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 407/666] clk: qcom: gcc-sc8180x: " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 408/666] clk: qcom: gcc-sc8180x: Use retention for USB power domains Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 409/666] clk: qcom: gcc-sc8180x: Use retention for PCIe " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 410/666] clk: qcom: dispcc-sm8250: Use shared ops on the mdss vsync clk Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 411/666] clk: qcom: dispcc-sm8250: Enable parents for pixel clocks Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 412/666] clk: imx: imx6q: Fix device node reference leak in pll6_bypassed() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 413/666] clk: imx: imx6q: Fix device node reference leak in of_assigned_ldb_sels() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 414/666] clk: imx8mq: Correct the CSI PHY sels Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 415/666] x86/um/vdso: Drop VDSO64-y from Makefile Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 416/666] x86/um: fix vDSO installation Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 417/666] clk: qoriq: avoid format string warning Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 418/666] clk: xgene: Fix mapping leak in xgene_pllclk_init() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 419/666] dt-bindings: clock: qcom,dispcc-sc7180: Define MDSS resets Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 420/666] clk: qcom: dispcc-sc7180: Add missing " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 421/666] lib/hexdump: print_hex_dump_bytes() calls print_hex_dump_debug() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 422/666] clk: qcom: gcc-x1e80100: Keep GCC USB QTB clock always ON Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 423/666] clk: visconti: pll: initialize clk_init_data to zero Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 424/666] f2fs: protect extension_list reading with sb_lock in f2fs_sbi_show() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 425/666] drm/i915: Relocate the SKL wm sanitation code Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 426/666] drm/i915/wm: Verify the correct plane DDB entry Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 427/666] crypto: sa2ul - Fix AEAD fallback algorithm names Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 428/666] crypto: ccp - copy IV using skcipher ivsize Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 429/666] erofs: add encoded extent on-disk definition Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 430/666] erofs: do sanity check on m->type in z_erofs_load_compact_lcluster() Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 431/666] erofs: avoid infinite loops due to corrupted subpage compact indexes Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 432/666] erofs: unify lcn as u64 for 32-bit platforms Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 433/666] arm64: dts: imx8mp-debix-model-a: Correct PAD settings for PMIC_nINT Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 434/666] arm64: dts: imx8mp-debix-som-a: " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 435/666] arm64: dts: imx8mp-navqp: " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 436/666] arm64: dts: imx8mp-icore-mx8mp: " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 437/666] arm64: dts: imx8mp-dhcom-som: " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 438/666] arm64: dts: imx8mp-data-modul-edm-sbc: " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 439/666] PCMCIA: Fix garbled log messages for KERN_CONT Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 440/666] arm64: dts: imx8mm-emtop-som: Correct PAD settings for PMIC_nINT Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 441/666] arm64: dts: imx8mn-tqma8mqnl: " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 442/666] arm64: dts: imx8mm-tqma8mqml: " Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 443/666] arm64: dts: marvell: armada-37xx: use usb2-phy in USB3 controllers phy-names Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 444/666] net/sched: act_mirred: fix wrong device for mac_header_xmit check in tcf_blockcast_redir Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 445/666] macvlan: fix macvlan_get_size() not reserving space for IFLA_MACVLAN_BC_CUTOFF Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 446/666] net/sched: sch_cake: fix NAT destination port not being updated in cake_update_flowkeys Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 447/666] nexthop: fix IPv6 route referencing IPv4 nexthop Greg Kroah-Hartman
2026-05-20 16:20 ` [PATCH 6.12 448/666] net/sched: taprio: fix use-after-free in advance_sched() on schedule switch Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 449/666] tcp: add data-race annotations around tp->data_segs_out and tp->total_retrans Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 450/666] tcp: add data-race annotations for TCP_NLA_SNDQ_SIZE Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 451/666] tcp: annotate data-races around tp->bytes_sent Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 452/666] tcp: annotate data-races around tp->bytes_retrans Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 453/666] tcp: annotate data-races around tp->dsack_dups Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 454/666] tcp: annotate data-races around (tp->write_seq - tp->snd_nxt) Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 455/666] tcp: annotate data-races around tp->plb_rehash Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 456/666] ice: update PCS latency settings for E825 10G/25Gb modes Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 457/666] ice: Remove jumbo_remove step from TX path Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 458/666] ice: fix double-free of tx_buf skb Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 459/666] ice: fix ICE_AQ_LINK_SPEED_M for 200G Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 460/666] i40e: dont advertise IFF_SUPP_NOFCS Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 461/666] e1000e: Unroll PTP in probe error handling Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 462/666] ipv6: fix possible UAF in icmpv6_rcv() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 463/666] sctp: fix OOB write to userspace in sctp_getsockopt_peer_auth_chunks Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 464/666] pppoe: drop PFC frames Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 465/666] net/mlx5: Fix HCA caps leak on notifier init failure Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 466/666] openvswitch: cap upcall PID array size and pre-size vport replies Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 467/666] netfilter: nft_osf: restrict it to ipv4 Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 468/666] netfilter: nfnetlink_osf: fix divide-by-zero in OSF_WSS_MODULO Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 469/666] netfilter: conntrack: remove sprintf usage Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 470/666] netfilter: xtables: restrict several matches to inet family Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 471/666] ipvs: fix MTU check for GSO packets in tunnel mode Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 472/666] netfilter: nfnetlink_osf: fix out-of-bounds read on option matching Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 473/666] netfilter: nfnetlink_osf: fix potential NULL dereference in ttl check Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 474/666] slip: reject VJ receive packets on instances with no rstate array Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 475/666] slip: bound decode() reads against the compressed packet length Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 476/666] arm64: dts: meson-gxl-p230: fix ethernet PHY interrupt number Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 477/666] pwm: atmel-tcb: Cache clock rates and mark chip as atomic Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 478/666] ksmbd: destroy tree_conn_ida in ksmbd_session_destroy() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 479/666] ksmbd: destroy async_ida in ksmbd_conn_free() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 480/666] ksmbd: fix durable fd leak on ClientGUID mismatch in durable v2 open Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 481/666] ksmbd: scope conn->binding slowpath to bound sessions only Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 482/666] net/rds: zero per-item info buffer before handing it to visitors Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 483/666] ice: fix timestamp interrupt configuration for E825C Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 484/666] ice: fix ice_ptp_read_tx_hwtstamp_status_eth56g Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 485/666] net_sched: sch_hhf: annotate data-races in hhf_dump_stats() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 486/666] net/sched: sch_pie: annotate data-races in pie_dump_stats() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 487/666] net/sched: sch_fq_codel: remove data-races from fq_codel_dump_stats() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 488/666] net/sched: sch_red: annotate data-races in red_dump_stats() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 489/666] net/sched: sch_sfb: annotate data-races in sfb_dump_stats() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 490/666] net: dsa: realtek: rtl8365mb: fix mode mask calculation Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 491/666] net: airoha: Move ndesc initialization at end of airoha_qdma_init_rx_queue() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 492/666] virtio_net: Split struct virtio_net_rss_config Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 493/666] virtio_net: Fix endian with virtio_net_ctrl_rss Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 494/666] virtio_net: Use new RSS config structs Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 495/666] virtio_net: sync rss_trailer.max_tx_vq on queue_pairs change via VQ_PAIRS_SET Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 496/666] nfp: fix swapped arguments in nfp_encode_basic_qdr() calls Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 497/666] tipc: fix double-free in tipc_buf_append() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 498/666] vhost_net: fix sleeping with preempt-disabled in vhost_net_busy_poll() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 499/666] fs/adfs: validate nzones in adfs_validate_bblk() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 500/666] rtc: abx80x: Disable alarm feature if no interrupt attached Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 501/666] kbuild: builddeb - avoid recompiles for non-cross-compiles Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 502/666] fbdev: offb: fix PCI device reference leak on probe failure Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 503/666] mailbox: mtk-cmdq: Fix CURR and END addr for task insert case Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 504/666] mailbox: mailbox-test: free channels on probe error Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 505/666] sched/psi: fix race between file release and pressure write Greg Kroah-Hartman
2026-05-22 19:47   ` Harshit Mogalapalli
2026-05-23  9:21     ` Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 506/666] cgroup/rdma: fix integer overflow in rdmacg_try_charge() Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 507/666] mailbox: add sanity check for channel array Greg Kroah-Hartman
2026-05-20 16:21 ` [PATCH 6.12 508/666] mailbox: mailbox-test: dont free the reused channel Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 509/666] mailbox: mailbox-test: initialize struct earlier Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 510/666] mailbox: mailbox-test: make data_ready a per-instance variable Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 511/666] fsnotify: fix inode reference leak in fsnotify_recalc_mask() Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 512/666] btrfs: fix double-decrement of bytes_may_use in submit_one_async_extent() Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 513/666] cgroup: Increment nr_dying_subsys_* from rmdir context Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 514/666] tracing: branch: Fix inverted check on stat tracer registration Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 515/666] nvmet-tcp: propagate nvmet_tcp_build_pdu_iovec() errors to its callers Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 516/666] netfilter: arp_tables: fix IEEE1394 ARP payload parsing Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 517/666] nvme-pci: fix missed admin queue sq doorbell write Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 518/666] drm/amdgpu/gmc: Fix AMDGPU_GART_PLACEMENT_LOW to not overlap with VRAM Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 519/666] drm/amdgpu: fix AMDGPU_INFO_READ_MMR_REG Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 520/666] drm/amdgpu: fix spelling typos Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 521/666] drm/amdgpu/uvd3.1: Dont validate the firmware when already validated Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 522/666] drm/amdgpu/gfx6: Support harvested SI chips with disabled TCCs (v2) Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 523/666] netfilter: xt_policy: fix strict mode inbound policy matching Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 524/666] netfilter: nf_conntrack_sip: dont use simple_strtoul Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 525/666] ASoC: amd: acp: Add DMI quirk for Valve Steam Deck OLED Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 526/666] spi: rockchip: Read ISR, not IMR, to detect cs-inactive IRQ Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 527/666] drm/sysfb: ofdrm: fix PCI device reference leaks Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 528/666] arm64/scs: Fix potential sign extension issue of advance_loc4 Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 529/666] cdrom, scsi: sr: propagate read-only status to block layer via set_disk_ro() Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 530/666] netdevsim: zero initialize struct iphdr in dummy sk_buff Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 531/666] net/sched: netem: fix probability gaps in 4-state loss model Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 532/666] net/sched: netem: fix queue limit check to include reordered packets Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 533/666] net/sched: netem: only reseed PRNG when seed is explicitly provided Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 534/666] net/sched: netem: validate slot configuration Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 535/666] net/sched: netem: fix slot delay calculation overflow Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 536/666] net/sched: netem: check for negative latency and jitter Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 537/666] net/sched: sch_choke: annotate data-races in choke_dump_stats() Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 538/666] net/sched: sch_fq_pie: annotate data-races in fq_pie_dump_stats() Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 539/666] vrf: Fix a potential NPD when removing a port from a VRF Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 540/666] net: usb: rtl8150: fix use-after-free in rtl8150_start_xmit() Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 541/666] net: usb: rtl8150: free skb on usb_submit_urb() failure in xmit Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 542/666] NFC: trf7970a: Ignore antenna noise when checking for RF field Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 543/666] net/sched: taprio: fix NULL pointer dereference in class dump Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 544/666] neigh: let neigh_xmit take skb ownership Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 545/666] tcp: make probe0 timer handle expired user timeout Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 546/666] net, treewide: define and use MAC_ADDR_STR_LEN Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 547/666] netconsole: allow selection of egress interface via MAC address Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 548/666] netpoll: Extract carrier wait function Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 549/666] netpoll: extract IPv4 address retrieval into helper function Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 550/666] netpoll: fix IPv6 local-address corruption Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 551/666] ALSA: usb-audio: Fix potential leak of pd at parsing UAC3 streams Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 552/666] sched/fair: Clear rel_deadline when initializing forked entities Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 553/666] net: mctp i2c: check length before marking flow active Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 554/666] net: phy: dp83869: fix setting CLK_O_SEL field Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 555/666] drm/amdgpu/vcn: set no_user_fence for VCN v2.0 enc/dec rings Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 556/666] drm/amdgpu/vcn: set no_user_fence for VCN v2.5 " Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 557/666] drm/amdgpu/vcn: set no_user_fence for VCN v3.0 " Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 558/666] drm/amdgpu/vcn: set no_user_fence for VCN v4.0.3 enc ring Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 559/666] drm/amdgpu/vcn: set no_user_fence for VCN v4.0.5 " Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 560/666] drm/amdgpu/vcn: set no_user_fence for VCN v5.0.0 " Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 561/666] drm/amdgpu/jpeg: set no_user_fence for JPEG v2.0 ring Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 562/666] drm/amdgpu/jpeg: set no_user_fence for JPEG v2.5 ring Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 563/666] drm/amdgpu/jpeg: set no_user_fence for JPEG v3.0 ring Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 564/666] drm/amdgpu/jpeg: set no_user_fence for JPEG v4.0 ring Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 565/666] drm/amdgpu/jpeg: set no_user_fence for JPEG v4.0.3 ring Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 566/666] drm/amdgpu/jpeg: set no_user_fence for JPEG v4.0.5 ring Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 567/666] drm/amdgpu/jpeg: set no_user_fence for JPEG v5.0.0 ring Greg Kroah-Hartman
2026-05-20 16:22 ` [PATCH 6.12 568/666] ASoC: codecs: ab8500: Fix casting of private data Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 569/666] netfilter: skip recording stale or retransmitted INIT Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 570/666] sctp: discard stale INIT after handshake completion Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 571/666] bareudp: fix NULL pointer dereference in bareudp_fill_metadata_dst() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 572/666] net/sched: sch_cake: annotate data-races in cake_dump_stats() (V) Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 573/666] netconsole: propagate device name truncation in dev_name_store() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 574/666] ALSA: hda/conexant: Renaming the codec with device ID 0x1f86 and 0x1f87 Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 575/666] ALSA: hda/conexant: Fix missing error check for jack detection Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 576/666] ALSA: hda: cs35l56: Fix uninitialized value in cs35l56_hda_read_acpi() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 577/666] futex: Prevent lockup in requeue-PI during signal/ timeout wakeup Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 578/666] drm/amd/display: Allow DCE link encoder without AUX registers Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 579/666] drm/amd/display: Read EDID from VBIOS embedded panel info Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 580/666] drm/xe/debugfs: Correct printing of register whitelist ranges Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 581/666] drm/xe: Fix error cleanup in xe_exec_queue_create_ioctl() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 582/666] drm/xe/gsc: Fix BO leak on error in query_compatibility_version() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 583/666] page_pool: Set `dma_sync` to false for devmem memory provider Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 584/666] net: page_pool: create hooks for custom memory providers Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 585/666] page_pool: fix memory-provider leak in page_pool_create_percpu() error path Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 586/666] iavf: rename IAVF_VLAN_IS_NEW to IAVF_VLAN_ADDING Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 587/666] iavf: stop removing VLAN filters from PF on interface down Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 588/666] iavf: wait for PF confirmation before removing VLAN filters Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 589/666] iavf: add VIRTCHNL_OP_ADD_VLAN to success completion handler Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 590/666] ice: fix NULL pointer dereference in ice_reset_all_vfs() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 591/666] net: tls: fix strparser anchor skb leak on offload RX setup failure Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 592/666] sfc: fix error code in efx_devlink_info_running_versions() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 593/666] net/sched: cls_flower: revert unintended changes Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 594/666] arm64: Reserve an extra page for early kernel mapping Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 595/666] smb: client: correctly handle ErrorContextData as a flexible array Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 596/666] smb: client: fix OOB reads parsing symlink error response Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 597/666] LoongArch: KVM: Compile switch.S directly into the kernel Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 598/666] ntfs: ->d_compare() must not block Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 599/666] PCI: Initialize temporary device in new_id_store() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 600/666] erofs: fix offset truncation when shifting pgoff on 32-bit platforms Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 601/666] net: bcmgenet: Initialize u64 stats seq counter Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 602/666] net: bcmgenet: fix leaking free_bds Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 603/666] iommu/amd: Reorder attach device code Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 604/666] iommu/amd: Put list_add/del(dev_data) back under the domain->lock Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 605/666] perf tool_pmu: Fix aggregation on duration_time Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 606/666] net/sched: sch_pie: annotate more data-races in pie_dump_stats() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 607/666] netpoll: Extract IPv6 address retrieval function Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 608/666] netpoll: pass buffer size to egress_dev() to avoid MAC truncation Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 609/666] page_pool: fix incorrect mp_ops error handling Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 610/666] crypto: af_alg - Cap AEAD AD length to 0x80000000 Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 611/666] i40e: Cleanup PTP pins on probe failure Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 612/666] workqueue: Fix wq->cpu_pwq leak in alloc_and_link_pwqs() WQ_UNBOUND path Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 613/666] netfilter: nf_conntrack_sip: get helper before allocating expectation Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 614/666] audit: fix incorrect inheritable capability in CAPSET records Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 615/666] Revert "ACPI: CPPC: Adjust debug messages in amd_set_max_freq_ratio() to warn" Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 616/666] netfilter: nft_ct: fix missing expect put in obj eval Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 617/666] net: atlantic: preserve PCI wake-from-D3 on shutdown when WOL enabled Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 618/666] audit: enforce AUDIT_LOCKED for AUDIT_TRIM and AUDIT_MAKE_EQUIV Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 619/666] KVM: Reject wrapped offset in kvm_reset_dirty_gfn() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 620/666] KVM: s390: pci: fix GAIT table indexing due to double-scaling pointer arithmetic Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 621/666] KVM: x86: Fix Xen hypercall tracepoint argument assignment Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 622/666] netfilter: nf_tables: unconditionally bump set->nelems before insertion Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 623/666] ata: libata-scsi: fix requeue of deferred ATA PASS-THROUGH commands Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 624/666] Bluetooth: btmtk: accept too short WMT FUNC_CTRL events Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 625/666] smb/client: fix possible infinite loop and oob read in symlink_data() Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 626/666] drm/loongson: Use managed KMS polling Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 627/666] drm/i915/dp: Fix VSC dynamic range signaling for RGB formats Greg Kroah-Hartman
2026-05-20 16:23 ` [PATCH 6.12 628/666] ALSA: usb-audio: Bound MIDI 2.0 endpoint descriptor scans Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 629/666] ALSA: usb-audio: Bound MIDI " Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 630/666] ceph: fix a buffer leak in __ceph_setxattr() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 631/666] ceph: fix BUG_ON in __ceph_build_xattrs_blob() due to stale blob size Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 632/666] io-wq: check that the predecessor is hashed in io_wq_remove_pending() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 633/666] powerpc/warp: Fix error handling in pika_dtm_thread Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 634/666] netfs: fix error handling in netfs_extract_user_iter() Greg Kroah-Hartman
2026-05-22 20:23   ` Harshit Mogalapalli
2026-05-23  9:22     ` Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 635/666] irqchip/riscv-imsic: Clear interrupt move state during CPU offlining Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 636/666] libceph: Fix potential out-of-bounds access in osdmap_decode() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 637/666] libceph: Fix potential null-ptr-deref in decode_choose_args() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 638/666] libceph: Fix potential out-of-bounds access in crush_decode() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 639/666] libceph: handle rbtree insertion error in decode_choose_args() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 640/666] iommu/vt-d: Disable DMAR for Intel Q35 IGFX Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 641/666] drm/i915: skip __i915_request_skip() for already signaled requests Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 642/666] drm/panfrost: Fix wait_bo ioctl leaking positive return from dma_resv_wait_timeout() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 643/666] drm/xe/dma-buf: handle empty bo and UAF races Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 644/666] drm/gma500/oaktrail_hdmi: fix i2c adapter leak on setup Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 645/666] drm/gma500/oaktrail_lvds: fix hang on init failure Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 646/666] drm/gma500/oaktrail_lvds: fix i2c adapter leaks on init Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 647/666] iommufd: Fix return value of iommufd_fault_fops_write() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 648/666] eventfs: Use list_add_tail_rcu() for SRCU-protected children list Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 649/666] drm/v3d: Reject empty multisync extension to prevent infinite loop Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 650/666] btrfs: use inode already stored in local variable at btrfs_rmdir() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 651/666] btrfs: use btrfs inodes in btrfs_rmdir() to avoid so much usage of BTRFS_I() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 652/666] btrfs: fix missing last_unlink_trans update when removing a directory Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 653/666] smb: client: Use FullSessionKey for AES-256 encryption key derivation Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 654/666] btrfs: do not mark inode incompressible after inline attempt fails Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 655/666] RDMA/mana: Remove user triggerable WARN_ON() in mana_ib_create_qp_rss() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 656/666] sched_ext: Guard scx_dsq_move() against NULL kit->dsq after failed iter_new Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 657/666] mptcp: pm: prio: skip closed subflows Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 658/666] mptcp: drop __mptcp_fastopen_gen_msk_ackseq() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 659/666] mptcp: fix rx timestamp corruption on fastopen Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 660/666] f2fs: fix incorrect file address mapping when inline inode is unwritten Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 661/666] f2fs: fix false alarm of lockdep on cp_global_sem lock Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 662/666] spi: sifive: Simplify clock handling with devm_clk_get_enabled() Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 663/666] spi: sifive: fix controller deregistration Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 664/666] mptcp: pm: kernel: correctly retransmit ADD_ADDR ID 0 Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 665/666] mptcp: pm: ADD_ADDR rtx: fix potential data-race Greg Kroah-Hartman
2026-05-20 16:24 ` [PATCH 6.12 666/666] mptcp: pm: ADD_ADDR rtx: resched blocked ADD_ADDR quicker Greg Kroah-Hartman
2026-05-20 19:11 ` [PATCH 6.12 000/666] 6.12.91-rc1 review Brett A C Sheffield
2026-05-20 21:46 ` Florian Fainelli
2026-05-21 12:55   ` Sasha Levin
2026-05-21  5:17 ` Francesco Dolcini
2026-05-21  9:55 ` Pavel Machek
2026-05-21 10:36 ` Mark Brown
2026-05-21 23:51 ` Ron Economos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260520162119.375577583@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=irogers@google.com \
    --cc=namhyung@kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.