Archive-only list for patches
 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, Menglong Dong <dongml2@chinatelecom.cn>,
	"Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.18 177/188] tracing: fprobe: use rhltable for fprobe_ip_table
Date: Fri, 15 May 2026 17:49:54 +0200	[thread overview]
Message-ID: <20260515154701.179659773@linuxfoundation.org> (raw)
In-Reply-To: <20260515154657.309489048@linuxfoundation.org>

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

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

From: Menglong Dong <menglong8.dong@gmail.com>

[ Upstream commit 0de4c70d04a46a3c266547dd4275ce25f623796a ]

For now, all the kernel functions who are hooked by the fprobe will be
added to the hash table "fprobe_ip_table". The key of it is the function
address, and the value of it is "struct fprobe_hlist_node".

The budget of the hash table is FPROBE_IP_TABLE_SIZE, which is 256. And
this means the overhead of the hash table lookup will grow linearly if
the count of the functions in the fprobe more than 256. When we try to
hook all the kernel functions, the overhead will be huge.

Therefore, replace the hash table with rhltable to reduce the overhead.

Link: https://lore.kernel.org/all/20250819031825.55653-1-dongml2@chinatelecom.cn/

Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Stable-dep-of: 845947aca681 ("tracing/fprobe: Remove fprobe from hash in failure path")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/linux/fprobe.h |    3 
 kernel/trace/fprobe.c  |  157 ++++++++++++++++++++++++++++---------------------
 2 files changed, 93 insertions(+), 67 deletions(-)

--- a/include/linux/fprobe.h
+++ b/include/linux/fprobe.h
@@ -7,6 +7,7 @@
 #include <linux/ftrace.h>
 #include <linux/rcupdate.h>
 #include <linux/refcount.h>
+#include <linux/rhashtable.h>
 #include <linux/slab.h>
 
 struct fprobe;
@@ -26,7 +27,7 @@ typedef void (*fprobe_exit_cb)(struct fp
  * @fp: The fprobe which owns this.
  */
 struct fprobe_hlist_node {
-	struct hlist_node	hlist;
+	struct rhlist_head	hlist;
 	unsigned long		addr;
 	struct fprobe		*fp;
 };
--- a/kernel/trace/fprobe.c
+++ b/kernel/trace/fprobe.c
@@ -11,6 +11,7 @@
 #include <linux/kprobes.h>
 #include <linux/list.h>
 #include <linux/mutex.h>
+#include <linux/rhashtable.h>
 #include <linux/slab.h>
 #include <linux/sort.h>
 
@@ -42,60 +43,67 @@
  *  - RCU hlist traversal under disabling preempt
  */
 static struct hlist_head fprobe_table[FPROBE_TABLE_SIZE];
-static struct hlist_head fprobe_ip_table[FPROBE_IP_TABLE_SIZE];
+static struct rhltable fprobe_ip_table;
 static DEFINE_MUTEX(fprobe_mutex);
 
-/*
- * Find first fprobe in the hlist. It will be iterated twice in the entry
- * probe, once for correcting the total required size, the second time is
- * calling back the user handlers.
- * Thus the hlist in the fprobe_table must be sorted and new probe needs to
- * be added *before* the first fprobe.
- */
-static struct fprobe_hlist_node *find_first_fprobe_node(unsigned long ip)
+static u32 fprobe_node_hashfn(const void *data, u32 len, u32 seed)
 {
-	struct fprobe_hlist_node *node;
-	struct hlist_head *head;
+	return hash_ptr(*(unsigned long **)data, 32);
+}
 
-	head = &fprobe_ip_table[hash_ptr((void *)ip, FPROBE_IP_HASH_BITS)];
-	hlist_for_each_entry_rcu(node, head, hlist,
-				 lockdep_is_held(&fprobe_mutex)) {
-		if (node->addr == ip)
-			return node;
-	}
-	return NULL;
+static int fprobe_node_cmp(struct rhashtable_compare_arg *arg,
+			   const void *ptr)
+{
+	unsigned long key = *(unsigned long *)arg->key;
+	const struct fprobe_hlist_node *n = ptr;
+
+	return n->addr != key;
 }
-NOKPROBE_SYMBOL(find_first_fprobe_node);
 
-/* Node insertion and deletion requires the fprobe_mutex */
-static void insert_fprobe_node(struct fprobe_hlist_node *node)
+static u32 fprobe_node_obj_hashfn(const void *data, u32 len, u32 seed)
 {
-	unsigned long ip = node->addr;
-	struct fprobe_hlist_node *next;
-	struct hlist_head *head;
+	const struct fprobe_hlist_node *n = data;
+
+	return hash_ptr((void *)n->addr, 32);
+}
+
+static const struct rhashtable_params fprobe_rht_params = {
+	.head_offset		= offsetof(struct fprobe_hlist_node, hlist),
+	.key_offset		= offsetof(struct fprobe_hlist_node, addr),
+	.key_len		= sizeof_field(struct fprobe_hlist_node, addr),
+	.hashfn			= fprobe_node_hashfn,
+	.obj_hashfn		= fprobe_node_obj_hashfn,
+	.obj_cmpfn		= fprobe_node_cmp,
+	.automatic_shrinking	= true,
+};
 
+/* Node insertion and deletion requires the fprobe_mutex */
+static int insert_fprobe_node(struct fprobe_hlist_node *node)
+{
 	lockdep_assert_held(&fprobe_mutex);
 
-	next = find_first_fprobe_node(ip);
-	if (next) {
-		hlist_add_before_rcu(&node->hlist, &next->hlist);
-		return;
-	}
-	head = &fprobe_ip_table[hash_ptr((void *)ip, FPROBE_IP_HASH_BITS)];
-	hlist_add_head_rcu(&node->hlist, head);
+	return rhltable_insert(&fprobe_ip_table, &node->hlist, fprobe_rht_params);
 }
 
 /* Return true if there are synonims */
 static bool delete_fprobe_node(struct fprobe_hlist_node *node)
 {
 	lockdep_assert_held(&fprobe_mutex);
+	bool ret;
 
 	/* Avoid double deleting */
 	if (READ_ONCE(node->fp) != NULL) {
 		WRITE_ONCE(node->fp, NULL);
-		hlist_del_rcu(&node->hlist);
+		rhltable_remove(&fprobe_ip_table, &node->hlist,
+				fprobe_rht_params);
 	}
-	return !!find_first_fprobe_node(node->addr);
+
+	rcu_read_lock();
+	ret = !!rhltable_lookup(&fprobe_ip_table, &node->addr,
+				fprobe_rht_params);
+	rcu_read_unlock();
+
+	return ret;
 }
 
 /* Check existence of the fprobe */
@@ -247,9 +255,10 @@ static inline int __fprobe_kprobe_handle
 static int fprobe_entry(struct ftrace_graph_ent *trace, struct fgraph_ops *gops,
 			struct ftrace_regs *fregs)
 {
-	struct fprobe_hlist_node *node, *first;
 	unsigned long *fgraph_data = NULL;
 	unsigned long func = trace->func;
+	struct fprobe_hlist_node *node;
+	struct rhlist_head *head, *pos;
 	unsigned long ret_ip;
 	int reserved_words;
 	struct fprobe *fp;
@@ -258,14 +267,11 @@ static int fprobe_entry(struct ftrace_gr
 	if (WARN_ON_ONCE(!fregs))
 		return 0;
 
-	first = node = find_first_fprobe_node(func);
-	if (unlikely(!first))
-		return 0;
-
+	head = rhltable_lookup(&fprobe_ip_table, &func, fprobe_rht_params);
 	reserved_words = 0;
-	hlist_for_each_entry_from_rcu(node, hlist) {
+	rhl_for_each_entry_rcu(node, pos, head, hlist) {
 		if (node->addr != func)
-			break;
+			continue;
 		fp = READ_ONCE(node->fp);
 		if (!fp || !fp->exit_handler)
 			continue;
@@ -276,13 +282,12 @@ static int fprobe_entry(struct ftrace_gr
 		reserved_words +=
 			FPROBE_HEADER_SIZE_IN_LONG + SIZE_IN_LONG(fp->entry_data_size);
 	}
-	node = first;
 	if (reserved_words) {
 		fgraph_data = fgraph_reserve_data(gops->idx, reserved_words * sizeof(long));
 		if (unlikely(!fgraph_data)) {
-			hlist_for_each_entry_from_rcu(node, hlist) {
+			rhl_for_each_entry_rcu(node, pos, head, hlist) {
 				if (node->addr != func)
-					break;
+					continue;
 				fp = READ_ONCE(node->fp);
 				if (fp && !fprobe_disabled(fp))
 					fp->nmissed++;
@@ -297,12 +302,12 @@ static int fprobe_entry(struct ftrace_gr
 	 */
 	ret_ip = ftrace_regs_get_return_address(fregs);
 	used = 0;
-	hlist_for_each_entry_from_rcu(node, hlist) {
+	rhl_for_each_entry_rcu(node, pos, head, hlist) {
 		int data_size;
 		void *data;
 
 		if (node->addr != func)
-			break;
+			continue;
 		fp = READ_ONCE(node->fp);
 		if (!fp || fprobe_disabled(fp))
 			continue;
@@ -447,25 +452,21 @@ static int fprobe_addr_list_add(struct f
 	return 0;
 }
 
-static void fprobe_remove_node_in_module(struct module *mod, struct hlist_head *head,
-					struct fprobe_addr_list *alist)
+static void fprobe_remove_node_in_module(struct module *mod, struct fprobe_hlist_node *node,
+					 struct fprobe_addr_list *alist)
 {
-	struct fprobe_hlist_node *node;
 	int ret = 0;
 
-	hlist_for_each_entry_rcu(node, head, hlist,
-				 lockdep_is_held(&fprobe_mutex)) {
-		if (!within_module(node->addr, mod))
-			continue;
-		if (delete_fprobe_node(node))
-			continue;
-		/*
-		 * If failed to update alist, just continue to update hlist.
-		 * Therefore, at list user handler will not hit anymore.
-		 */
-		if (!ret)
-			ret = fprobe_addr_list_add(alist, node->addr);
-	}
+	if (!within_module(node->addr, mod))
+		return;
+	if (delete_fprobe_node(node))
+		return;
+	/*
+	 * If failed to update alist, just continue to update hlist.
+	 * Therefore, at list user handler will not hit anymore.
+	 */
+	if (!ret)
+		ret = fprobe_addr_list_add(alist, node->addr);
 }
 
 /* Handle module unloading to manage fprobe_ip_table. */
@@ -473,8 +474,9 @@ static int fprobe_module_callback(struct
 				  unsigned long val, void *data)
 {
 	struct fprobe_addr_list alist = {.size = FPROBE_IPS_BATCH_INIT};
+	struct fprobe_hlist_node *node;
+	struct rhashtable_iter iter;
 	struct module *mod = data;
-	int i;
 
 	if (val != MODULE_STATE_GOING)
 		return NOTIFY_DONE;
@@ -485,8 +487,16 @@ static int fprobe_module_callback(struct
 		return NOTIFY_DONE;
 
 	mutex_lock(&fprobe_mutex);
-	for (i = 0; i < FPROBE_IP_TABLE_SIZE; i++)
-		fprobe_remove_node_in_module(mod, &fprobe_ip_table[i], &alist);
+	rhltable_walk_enter(&fprobe_ip_table, &iter);
+	do {
+		rhashtable_walk_start(&iter);
+
+		while ((node = rhashtable_walk_next(&iter)) && !IS_ERR(node))
+			fprobe_remove_node_in_module(mod, node, &alist);
+
+		rhashtable_walk_stop(&iter);
+	} while (node == ERR_PTR(-EAGAIN));
+	rhashtable_walk_exit(&iter);
 
 	if (alist.index > 0)
 		ftrace_set_filter_ips(&fprobe_graph_ops.ops,
@@ -728,8 +738,16 @@ int register_fprobe_ips(struct fprobe *f
 	ret = fprobe_graph_add_ips(addrs, num);
 	if (!ret) {
 		add_fprobe_hash(fp);
-		for (i = 0; i < hlist_array->size; i++)
-			insert_fprobe_node(&hlist_array->array[i]);
+		for (i = 0; i < hlist_array->size; i++) {
+			ret = insert_fprobe_node(&hlist_array->array[i]);
+			if (ret)
+				break;
+		}
+		/* fallback on insert error */
+		if (ret) {
+			for (i--; i >= 0; i--)
+				delete_fprobe_node(&hlist_array->array[i]);
+		}
 	}
 
 	if (ret)
@@ -824,3 +842,10 @@ out:
 	return ret;
 }
 EXPORT_SYMBOL_GPL(unregister_fprobe);
+
+static int __init fprobe_initcall(void)
+{
+	rhltable_init(&fprobe_ip_table, &fprobe_rht_params);
+	return 0;
+}
+late_initcall(fprobe_initcall);



  parent reply	other threads:[~2026-05-15 16:24 UTC|newest]

Thread overview: 200+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-15 15:46 [PATCH 6.18 000/188] 6.18.32-rc1 review Greg Kroah-Hartman
2026-05-15 15:46 ` [PATCH 6.18 001/188] HID: playstation: Clamp num_touch_reports Greg Kroah-Hartman
2026-05-15 15:46 ` [PATCH 6.18 002/188] HID: appletb-kbd: fix UAF in inactivity-timer cleanup path Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 003/188] HID: appletb-kbd: run inactivity autodim from workqueues Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 004/188] HID: pass the buffer size to hid_report_raw_event Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 005/188] HID: core: introduce hid_safe_input_report() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 006/188] HID: pidff: Fix integer overflow in pidff_rescale Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 007/188] media: uvcvideo: Enable VB2_DMABUF for metadata stream Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 008/188] drm/msm/hdmi: Fix wrong CTRL1 register used in writing info frames Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 009/188] media: nxp: imx8-isi: Reduce minimum queued buffers from 2 to 0 Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 010/188] media: renesas: vsp1: Fix NULL pointer deref on module unload Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 011/188] media: renesas: vin: Fix RAW8 (again) Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 012/188] media: i2c: ov8856: free control handler on error in ov8856_init_controls() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 013/188] media: dt-bindings: rockchip,vdec: Add alternative reg-names order for RK35{76,88} Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 014/188] media: dt-bindings: rockchip,vdec: Mark reg-names required " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 015/188] media: chips-media: wave5: fix a potential memory leak in wave5_vdi_init() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 016/188] media: chips-media: wave5: add missing spinlock protection for send_eos_event() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 017/188] media: chips-media: wave5: add missing spinlock protection for handle_dynamic_resolution_change() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 018/188] drm/gpusvm: Force unmapping on error in drm_gpusvm_get_pages Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 019/188] spi: bcm63xx: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 020/188] spi: atmel: " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 021/188] arm64: dts: lx2160a-cex7/lx2162a-sr-som: fix usd-cd & gpio pinmux Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 022/188] staging: media: atomisp: Disallow all private IOCTLs Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 023/188] regulator: mt6357: fix OF node reference imbalance Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 024/188] spi: st-ssc4: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 025/188] regulator: max77650: fix OF node reference imbalance Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 026/188] media: rc: xbox_remote: heed DMA restrictions Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 027/188] media: rc: streamzap: Error handling in probe Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 028/188] media: i2c: imx283: Enter full standby when stopping streaming Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 029/188] regulator: bq257xx: fix OF node reference imbalance Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 030/188] regulator: rk808: " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 031/188] media: videobuf2: Set vma_flags in vb2_dma_sg_mmap Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 032/188] media: intel/ipu6: fix error pointer dereference Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 033/188] media: i2c: imx283: Fix hang when going from large to small resolution Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 034/188] regulator: act8945a: fix OF node reference imbalance Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 035/188] regulator: s2dos05: " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 036/188] regulator: bd9571mwv: " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 037/188] spi: lantiq-ssc: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 038/188] spi: meson-spicc: " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 039/188] spi: qup: " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 040/188] spi: at91-usart: " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 041/188] media: saa7164: add ioremap return checks and cleanups Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 042/188] spi: amlogic-spisg: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 043/188] spi: aspeed-smc: " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 044/188] platform/x86: hp-wmi: Ignore backlight and FnLock events Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 045/188] vsock/virtio: fix MSG_PEEK ignoring skb offset when calculating bytes to copy Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 046/188] arm64: dts: broadcom: bcm2712-d-rpi-5-b: add fixes for pinctrl/pinctrl_aon Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 047/188] arm64: dts: broadcom: bcm2712-d-rpi-5-b: update uart10 interrupt Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 048/188] media: pci: zoran: fix potential memory leak in zoran_probe() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 049/188] media: dib8000: avoid division by 0 in dib8000_set_dds() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 050/188] media: i2c: imx412: Assert reset GPIO during probe Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 051/188] media: staging: imx: request mbus_config in csi_start Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 052/188] media: i2c: ov08d10: fix image vertical start setting Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 053/188] media: i2c: ov08d10: fix runtime PM handling in probe Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 054/188] media: omap3isp: drop the use count of v4l2 pipeline Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 055/188] media: iris: fix QCOM_MDT_LOADER dependency Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 056/188] media: iris: Fix use-after-free in iris_release_internal_buffers() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 057/188] media: qcom: camss: Fix csid clock configuration for sa8775p Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 058/188] media: qcom: camss: Fix csid IRQ offset " Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 059/188] media: qcom: iris: increase H265D_MAX_SLICE to fix H.265 decoding on SC7280 Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 060/188] media: venus: fix QCOM_MDT_LOADER dependency Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 061/188] media: iris: Fix dma_free_attrs() size in iris_hfi_queues_init() Greg Kroah-Hartman
2026-05-15 15:47 ` [PATCH 6.18 062/188] media: qcom: camss: Add missing clocks for VFE lite on sa8775p Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 063/188] spi: mxs: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 064/188] spi: mt65xx: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 065/188] spi: dln2: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 066/188] spi: s3c64xx: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 067/188] spi: fsl-espi: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 068/188] spi: omap2-mcspi: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 069/188] spi: pic32: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 070/188] spi: mtk-nor: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 071/188] spi: pl022: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 072/188] spi: ch341: fix devres lifetime Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 073/188] spi: sh-hspi: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 074/188] spi: fsl: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 075/188] spi: bcmbca-hsspi: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 076/188] spi: coldfire-qspi: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 077/188] spi: npcm-pspi: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 078/188] spi: cavium-thunderx: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 079/188] spi: pic32-sqi: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 080/188] spi: sprd: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 081/188] spi: rspi: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 082/188] spi: sh-msiof: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 083/188] spi: slave-mt27xx: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 084/188] spi: img-spfi: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 085/188] spi: mpfs: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 086/188] spi: imx: fix runtime pm leak on probe deferral Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 087/188] spi: mxic: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 088/188] spi: orion: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 089/188] spi: orion: fix runtime pm leak on unbind Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 090/188] spi: orion: fix clock imbalance on registration failure Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 091/188] spi: mpc52xx: fix use-after-free " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 092/188] spi: mpc52xx: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 093/188] spi: mpc52xx: fix use-after-free on unbind Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 094/188] spi: cadence: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 095/188] spi: cadence: fix unclocked access on unbind Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 096/188] spi: cadence: fix clock imbalance on probe failure Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 097/188] drm/msm/gem: fix error handling in msm_ioctl_gem_info_get_metadata() Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 098/188] drm/imx: parallel-display: Prefer bus format set via legacy "interface-pix-fmt" DT property Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 099/188] drm/msm: always recover the gpu Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 100/188] drm/i915/psr: Init variable to avoid early exit from et alignment loop Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 101/188] drm/amdkfd: Clear VRAM on allocation to prevent stale data exposure Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 102/188] drm/amdgpu: Use SMUIO 15.0.0 offsets for TSC upper and lower count Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 103/188] drm/amdgpu: gate VM CPU HDP flush on reset lock Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 104/188] drm/amd/pm: fix incorrect FeatureCtrlMask setting on smu v14.0.x Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 105/188] drm/amdkfd: Add upper bound check for num_of_nodes Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 106/188] drm/amdgpu: Add bounds checking to ib_{get,set}_value Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 107/188] drm/amdgpu/vcn4: Prevent OOB reads when parsing IB Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 108/188] drm/amdgpu/vce: Prevent partial address patches Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 109/188] drm/amdgpu/vcn4: Prevent OOB reads when parsing dec msg Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 110/188] drm/amdgpu/vcn3: " Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 111/188] drm/amd/display: Change dither policy for 10 bpc output back to dithering Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 112/188] drm/gem: Fix inconsistent plane dimension calculation in drm_gem_fb_init_with_funcs() Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 113/188] drm/appletbdrm: Use kvzalloc for big allocations Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 114/188] drm/amdkfd: validate SVM ioctl nattr against buffer size Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 115/188] drm/udl: Increase GET_URB_TIMEOUT Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 116/188] drm/xe: Fix bo leak in xe_dma_buf_init_obj() on allocation failure Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 117/188] drm/xe/bo: Fix bo leak on GGTT flag validation in xe_bo_init_locked() Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 118/188] drm/xe: Fix dma-buf attachment leak in xe_gem_prime_import() Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 119/188] drm/xe/bo: Fix bo leak on unaligned size validation in xe_bo_init_locked() Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 120/188] drm/xe/uapi: Reject coh_none PAT index for CPU cached memory in madvise Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 121/188] drm: Set old handle to NULL before prime swap in change_handle Greg Kroah-Hartman
2026-05-15 15:48 ` [PATCH 6.18 122/188] drm/radeon: add missing revision check for CI Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 123/188] drm/amdgpu: zero-initialize GART table on allocation Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 124/188] drm/exynos: remove bridge when component_add fails Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 125/188] drm/panel: himax-hx83102: restore MODE_LPM after sending disable cmds Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 126/188] drm/amdgpu/gfx9: drop unnecessary 64-bit fence flag check in KIQ Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 127/188] drm/bridge: tda998x: Use __be32 for audio port OF property pointer Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 128/188] drm/panel: boe-tv101wum-nl6: restore MODE_LPM after sending disable cmds Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 129/188] drm/amdkfd: Make all TLB-flushes heavy-weight Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 130/188] drm/amdgpu/sdma4: replace BUG_ON with WARN_ON in fence emission Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 131/188] drm/amdgpu/pm: add missing revision check for CI Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 132/188] drm/amdgpu/pm: align Hawaii mclk workaround with radeon Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 133/188] arm64: dts: qcom: lemans: Correct QUP interrupt numbers Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 134/188] arm64: dts: ti: k3-am62a7-sk: Fix pin name in comment from M19 to N22 Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 135/188] sctp: revalidate list cursor after sctp_sendmsg_to_asoc() in SCTP_SENDALL Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 136/188] batman-adv: fix integer overflow on buff_pos Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 137/188] batman-adv: reject new tp_meter sessions during teardown Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 138/188] batman-adv: stop tp_meter sessions during mesh teardown Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 139/188] batman-adv: stop caching unowned originator pointers in BAT IV Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 140/188] batman-adv: bla: prevent use-after-free when deleting claims Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 141/188] batman-adv: bla: only purge non-released claims Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 142/188] batman-adv: bla: put backbone reference on failed claim hash insert Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 143/188] sched_ext: Use HK_TYPE_DOMAIN_BOOT to detect isolcpus= domain isolation Greg Kroah-Hartman
2026-05-16  0:48   ` Peter Schneider
2026-05-16 10:07     ` Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 144/188] io_uring/zcrx: use guards for locking Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 145/188] io_uring/zcrx: warn on freelist violations Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 146/188] LoongArch: KVM: Compile switch.S directly into the kernel Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 147/188] mm/damon/core: implement damon_kdamond_pid() Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 148/188] mm/damon/lru_sort: detect and use fresh enabled and kdamond_pid values Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 149/188] mm/damon/reclaim: " Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 150/188] usb: typec: tcpm: reset internal port states on soft reset AMS Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 151/188] mm/damon/core: disallow time-quota setting zero esz Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 152/188] drm/amdgpu: validate the flush_gpu_tlb_pasid() Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 153/188] drm/amdgpu: Fix validating flush_gpu_tlb_pasid() Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 154/188] Revert "drm/amdgpu: dont attach the tlb fence for SI" Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 155/188] drm/amdgpu: rework how we handle TLB fences Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 156/188] fbcon: Rename struct fbcon_ops to struct fbcon_par Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 157/188] fbcon: Avoid OOB font access if console rotation fails Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 158/188] block: fix zone write plug removal Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 159/188] EDAC/versalnet: Fix device name memory leak Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 160/188] papr-hvpipe: convert papr_hvpipe_dev_create_handle() to FD_PREPARE() Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 161/188] pseries/papr-hvpipe: Fix race with interrupt handler Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 162/188] spi: uniphier: Simplify clock handling with devm_clk_get_enabled() Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 163/188] spi: uniphier: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 164/188] spi: tegra20-sflash: " Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 165/188] spi: tegra114: " Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 166/188] spi: zynq-qspi: Simplify clock handling with devm_clk_get_enabled() Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 167/188] spi: zynq-qspi: fix controller deregistration Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 168/188] Bluetooth: hci_conn: fix potential UAF in create_big_sync Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 169/188] sched/ext: Implement cgroup_set_idle() callback Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 170/188] sched_ext: Read scx_root under scx_cgroup_ops_rwsem in cgroup setters Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 171/188] usb: dwc3: Remove of dep->regs Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 172/188] usb: dwc3: Add dwc pointer to dwc3_readl/writel Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 173/188] usb: dwc3: Move GUID programming after PHY initialization Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 174/188] btrfs: remove fs_info argument from btrfs_sysfs_add_space_info_type() Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 175/188] btrfs: fix double free in create_space_info_sub_group() error path Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 176/188] btrfs: fix btrfs_ioctl_space_info() slot_count TOCTOU which can lead to info-leak Greg Kroah-Hartman
2026-05-15 15:49 ` Greg Kroah-Hartman [this message]
2026-05-15 15:49 ` [PATCH 6.18 178/188] tracing: fprobe: optimization for entry only case Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 179/188] tracing/fprobe: Unregister fprobe even if memory allocation fails Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 180/188] tracing/fprobe: Remove fprobe from hash in failure path Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 181/188] batman-adv: tp_meter: fix tp_num leak on kmalloc failure Greg Kroah-Hartman
2026-05-15 15:49 ` [PATCH 6.18 182/188] vsock: fix buffer size clamping order Greg Kroah-Hartman
2026-05-15 15:50 ` [PATCH 6.18 183/188] vsock/virtio: fix length and offset in tap skb for split packets Greg Kroah-Hartman
2026-05-15 15:50 ` [PATCH 6.18 184/188] vsock/virtio: fix empty payload in tap skb for non-linear buffers Greg Kroah-Hartman
2026-05-15 15:50 ` [PATCH 6.18 185/188] vsock/virtio: fix potential unbounded skb queue Greg Kroah-Hartman
2026-05-15 15:50 ` [PATCH 6.18 186/188] vsock/virtio: fix accept queue count leak on transport mismatch Greg Kroah-Hartman
2026-05-15 15:50 ` [PATCH 6.18 187/188] drm/amdgpu/vcn3: Avoid overflow on msg bound check Greg Kroah-Hartman
2026-05-15 15:50 ` [PATCH 6.18 188/188] drm/amdgpu/vcn4: " Greg Kroah-Hartman
2026-05-15 17:13 ` [PATCH 6.18 000/188] 6.18.32-rc1 review Wentao Guan
2026-05-16 10:08   ` Greg KH
2026-05-15 20:24 ` Florian Fainelli
2026-05-15 22:13 ` Pavel Machek
2026-05-15 22:45 ` Shuah Khan
2026-05-16  2:04 ` Miguel Ojeda
2026-05-16 10:11   ` Greg KH
2026-05-16  6:37 ` Mark Brown
2026-05-16  9:23 ` Brett A C Sheffield

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=20260515154701.179659773@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dongml2@chinatelecom.cn \
    --cc=mhiramat@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox