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,
	Scott Mitchell <scott.k.mitch1@gmail.com>,
	Florian Westphal <fw@strlen.de>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.18 103/198] netfilter: nfnetlink_queue: make hash table per queue
Date: Mon, 20 Apr 2026 17:41:22 +0200	[thread overview]
Message-ID: <20260420153939.310479273@linuxfoundation.org> (raw)
In-Reply-To: <20260420153935.605963767@linuxfoundation.org>

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

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

From: Florian Westphal <fw@strlen.de>

[ Upstream commit 936206e3f6ff411581e615e930263d6f8b78df9d ]

Sharing a global hash table among all queues is tempting, but
it can cause crash:

BUG: KASAN: slab-use-after-free in nfqnl_recv_verdict+0x11ac/0x15e0 [nfnetlink_queue]
[..]
 nfqnl_recv_verdict+0x11ac/0x15e0 [nfnetlink_queue]
 nfnetlink_rcv_msg+0x46a/0x930
 kmem_cache_alloc_node_noprof+0x11e/0x450

struct nf_queue_entry is freed via kfree, but parallel cpu can still
encounter such an nf_queue_entry when walking the list.

Alternative fix is to free the nf_queue_entry via kfree_rcu() instead,
but as we have to alloc/free for each skb this will cause more mem
pressure.

Cc: Scott Mitchell <scott.k.mitch1@gmail.com>
Fixes: e19079adcd26 ("netfilter: nfnetlink_queue: optimize verdict lookup with hash table")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/net/netfilter/nf_queue.h |   1 -
 net/netfilter/nfnetlink_queue.c  | 139 +++++++++++--------------------
 2 files changed, 49 insertions(+), 91 deletions(-)

diff --git a/include/net/netfilter/nf_queue.h b/include/net/netfilter/nf_queue.h
index 45eb26b2e95b3..d17035d14d96c 100644
--- a/include/net/netfilter/nf_queue.h
+++ b/include/net/netfilter/nf_queue.h
@@ -23,7 +23,6 @@ struct nf_queue_entry {
 	struct nf_hook_state	state;
 	bool			nf_ct_is_unconfirmed;
 	u16			size; /* sizeof(entry) + saved route keys */
-	u16			queue_num;
 
 	/* extra space to store route keys */
 };
diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c
index a39d3b989063c..fe5942535245d 100644
--- a/net/netfilter/nfnetlink_queue.c
+++ b/net/netfilter/nfnetlink_queue.c
@@ -49,8 +49,8 @@
 #endif
 
 #define NFQNL_QMAX_DEFAULT 1024
-#define NFQNL_HASH_MIN     1024
-#define NFQNL_HASH_MAX     1048576
+#define NFQNL_HASH_MIN     8
+#define NFQNL_HASH_MAX     32768
 
 /* We're using struct nlattr which has 16bit nla_len. Note that nla_len
  * includes the header length. Thus, the maximum packet length that we
@@ -60,29 +60,10 @@
  */
 #define NFQNL_MAX_COPY_RANGE (0xffff - NLA_HDRLEN)
 
-/* Composite key for packet lookup: (net, queue_num, packet_id) */
-struct nfqnl_packet_key {
-	possible_net_t net;
-	u32 packet_id;
-	u16 queue_num;
-} __aligned(sizeof(u32));  /* jhash2 requires 32-bit alignment */
-
-/* Global rhashtable - one for entire system, all netns */
-static struct rhashtable nfqnl_packet_map __read_mostly;
-
-/* Helper to initialize composite key */
-static inline void nfqnl_init_key(struct nfqnl_packet_key *key,
-				  struct net *net, u32 packet_id, u16 queue_num)
-{
-	memset(key, 0, sizeof(*key));
-	write_pnet(&key->net, net);
-	key->packet_id = packet_id;
-	key->queue_num = queue_num;
-}
-
 struct nfqnl_instance {
 	struct hlist_node hlist;		/* global list of queues */
-	struct rcu_head rcu;
+	struct rhashtable nfqnl_packet_map;
+	struct rcu_work	rwork;
 
 	u32 peer_portid;
 	unsigned int queue_maxlen;
@@ -106,6 +87,7 @@ struct nfqnl_instance {
 
 typedef int (*nfqnl_cmpfn)(struct nf_queue_entry *, unsigned long);
 
+static struct workqueue_struct *nfq_cleanup_wq __read_mostly;
 static unsigned int nfnl_queue_net_id __read_mostly;
 
 #define INSTANCE_BUCKETS	16
@@ -124,34 +106,10 @@ static inline u_int8_t instance_hashfn(u_int16_t queue_num)
 	return ((queue_num >> 8) ^ queue_num) % INSTANCE_BUCKETS;
 }
 
-/* Extract composite key from nf_queue_entry for hashing */
-static u32 nfqnl_packet_obj_hashfn(const void *data, u32 len, u32 seed)
-{
-	const struct nf_queue_entry *entry = data;
-	struct nfqnl_packet_key key;
-
-	nfqnl_init_key(&key, entry->state.net, entry->id, entry->queue_num);
-
-	return jhash2((u32 *)&key, sizeof(key) / sizeof(u32), seed);
-}
-
-/* Compare stack-allocated key against entry */
-static int nfqnl_packet_obj_cmpfn(struct rhashtable_compare_arg *arg,
-				  const void *obj)
-{
-	const struct nfqnl_packet_key *key = arg->key;
-	const struct nf_queue_entry *entry = obj;
-
-	return !net_eq(entry->state.net, read_pnet(&key->net)) ||
-	       entry->queue_num != key->queue_num ||
-	       entry->id != key->packet_id;
-}
-
 static const struct rhashtable_params nfqnl_rhashtable_params = {
 	.head_offset = offsetof(struct nf_queue_entry, hash_node),
-	.key_len = sizeof(struct nfqnl_packet_key),
-	.obj_hashfn = nfqnl_packet_obj_hashfn,
-	.obj_cmpfn = nfqnl_packet_obj_cmpfn,
+	.key_offset = offsetof(struct nf_queue_entry, id),
+	.key_len = sizeof(u32),
 	.automatic_shrinking = true,
 	.min_size = NFQNL_HASH_MIN,
 	.max_size = NFQNL_HASH_MAX,
@@ -190,6 +148,10 @@ instance_create(struct nfnl_queue_net *q, u_int16_t queue_num, u32 portid)
 	spin_lock_init(&inst->lock);
 	INIT_LIST_HEAD(&inst->queue_list);
 
+	err = rhashtable_init(&inst->nfqnl_packet_map, &nfqnl_rhashtable_params);
+	if (err < 0)
+		goto out_free;
+
 	spin_lock(&q->instances_lock);
 	if (instance_lookup(q, queue_num)) {
 		err = -EEXIST;
@@ -210,6 +172,8 @@ instance_create(struct nfnl_queue_net *q, u_int16_t queue_num, u32 portid)
 
 out_unlock:
 	spin_unlock(&q->instances_lock);
+	rhashtable_destroy(&inst->nfqnl_packet_map);
+out_free:
 	kfree(inst);
 	return ERR_PTR(err);
 }
@@ -217,15 +181,18 @@ instance_create(struct nfnl_queue_net *q, u_int16_t queue_num, u32 portid)
 static void nfqnl_flush(struct nfqnl_instance *queue, nfqnl_cmpfn cmpfn,
 			unsigned long data);
 
-static void
-instance_destroy_rcu(struct rcu_head *head)
+static void instance_destroy_work(struct work_struct *work)
 {
-	struct nfqnl_instance *inst = container_of(head, struct nfqnl_instance,
-						   rcu);
+	struct nfqnl_instance *inst;
 
+	inst = container_of(to_rcu_work(work), struct nfqnl_instance,
+			    rwork);
 	rcu_read_lock();
 	nfqnl_flush(inst, NULL, 0);
 	rcu_read_unlock();
+
+	rhashtable_destroy(&inst->nfqnl_packet_map);
+
 	kfree(inst);
 	module_put(THIS_MODULE);
 }
@@ -234,7 +201,9 @@ static void
 __instance_destroy(struct nfqnl_instance *inst)
 {
 	hlist_del_rcu(&inst->hlist);
-	call_rcu(&inst->rcu, instance_destroy_rcu);
+
+	INIT_RCU_WORK(&inst->rwork, instance_destroy_work);
+	queue_rcu_work(nfq_cleanup_wq, &inst->rwork);
 }
 
 static void
@@ -250,9 +219,7 @@ __enqueue_entry(struct nfqnl_instance *queue, struct nf_queue_entry *entry)
 {
 	int err;
 
-	entry->queue_num = queue->queue_num;
-
-	err = rhashtable_insert_fast(&nfqnl_packet_map, &entry->hash_node,
+	err = rhashtable_insert_fast(&queue->nfqnl_packet_map, &entry->hash_node,
 				     nfqnl_rhashtable_params);
 	if (unlikely(err))
 		return err;
@@ -266,23 +233,19 @@ __enqueue_entry(struct nfqnl_instance *queue, struct nf_queue_entry *entry)
 static void
 __dequeue_entry(struct nfqnl_instance *queue, struct nf_queue_entry *entry)
 {
-	rhashtable_remove_fast(&nfqnl_packet_map, &entry->hash_node,
+	rhashtable_remove_fast(&queue->nfqnl_packet_map, &entry->hash_node,
 			       nfqnl_rhashtable_params);
 	list_del(&entry->list);
 	queue->queue_total--;
 }
 
 static struct nf_queue_entry *
-find_dequeue_entry(struct nfqnl_instance *queue, unsigned int id,
-		   struct net *net)
+find_dequeue_entry(struct nfqnl_instance *queue, unsigned int id)
 {
-	struct nfqnl_packet_key key;
 	struct nf_queue_entry *entry;
 
-	nfqnl_init_key(&key, net, id, queue->queue_num);
-
 	spin_lock_bh(&queue->lock);
-	entry = rhashtable_lookup_fast(&nfqnl_packet_map, &key,
+	entry = rhashtable_lookup_fast(&queue->nfqnl_packet_map, &id,
 				       nfqnl_rhashtable_params);
 
 	if (entry)
@@ -1531,7 +1494,7 @@ static int nfqnl_recv_verdict(struct sk_buff *skb, const struct nfnl_info *info,
 
 	verdict = ntohl(vhdr->verdict);
 
-	entry = find_dequeue_entry(queue, ntohl(vhdr->id), info->net);
+	entry = find_dequeue_entry(queue, ntohl(vhdr->id));
 	if (entry == NULL)
 		return -ENOENT;
 
@@ -1880,40 +1843,38 @@ static int __init nfnetlink_queue_init(void)
 {
 	int status;
 
-	status = rhashtable_init(&nfqnl_packet_map, &nfqnl_rhashtable_params);
-	if (status < 0)
-		return status;
+	nfq_cleanup_wq = alloc_ordered_workqueue("nfq_workqueue", 0);
+	if (!nfq_cleanup_wq)
+		return -ENOMEM;
 
 	status = register_pernet_subsys(&nfnl_queue_net_ops);
-	if (status < 0) {
-		pr_err("failed to register pernet ops\n");
-		goto cleanup_rhashtable;
-	}
+	if (status < 0)
+		goto cleanup_pernet_subsys;
 
-	netlink_register_notifier(&nfqnl_rtnl_notifier);
-	status = nfnetlink_subsys_register(&nfqnl_subsys);
-	if (status < 0) {
-		pr_err("failed to create netlink socket\n");
-		goto cleanup_netlink_notifier;
-	}
+	status = netlink_register_notifier(&nfqnl_rtnl_notifier);
+	if (status < 0)
+	       goto cleanup_rtnl_notifier;
 
 	status = register_netdevice_notifier(&nfqnl_dev_notifier);
-	if (status < 0) {
-		pr_err("failed to register netdevice notifier\n");
-		goto cleanup_netlink_subsys;
-	}
+	if (status < 0)
+		goto cleanup_dev_notifier;
+
+	status = nfnetlink_subsys_register(&nfqnl_subsys);
+	if (status < 0)
+		goto cleanup_nfqnl_subsys;
 
 	nf_register_queue_handler(&nfqh);
 
 	return status;
 
-cleanup_netlink_subsys:
-	nfnetlink_subsys_unregister(&nfqnl_subsys);
-cleanup_netlink_notifier:
+cleanup_nfqnl_subsys:
+	unregister_netdevice_notifier(&nfqnl_dev_notifier);
+cleanup_dev_notifier:
 	netlink_unregister_notifier(&nfqnl_rtnl_notifier);
+cleanup_rtnl_notifier:
 	unregister_pernet_subsys(&nfnl_queue_net_ops);
-cleanup_rhashtable:
-	rhashtable_destroy(&nfqnl_packet_map);
+cleanup_pernet_subsys:
+	destroy_workqueue(nfq_cleanup_wq);
 	return status;
 }
 
@@ -1924,9 +1885,7 @@ static void __exit nfnetlink_queue_fini(void)
 	nfnetlink_subsys_unregister(&nfqnl_subsys);
 	netlink_unregister_notifier(&nfqnl_rtnl_notifier);
 	unregister_pernet_subsys(&nfnl_queue_net_ops);
-
-	rhashtable_destroy(&nfqnl_packet_map);
-
+	destroy_workqueue(nfq_cleanup_wq);
 	rcu_barrier(); /* Wait for completion of call_rcu()'s */
 }
 
-- 
2.53.0




  parent reply	other threads:[~2026-04-20 16:01 UTC|newest]

Thread overview: 212+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-20 15:39 [PATCH 6.18 000/198] 6.18.24-rc1 review Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 001/198] dmaengine: idxd: Fix lockdep warnings when calling idxd_device_config() Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 002/198] RDMA/irdma: Fix double free related to rereg_user_mr Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 003/198] ASoC: amd: yc: Add DMI quirk for ASUS EXPERTBOOK BM1403CDA Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 004/198] ALSA: hda/realtek: Add HP ENVY Laptop 13-ba0xxx quirk Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 005/198] ALSA: hda/realtek: add quirk for Lenovo Yoga 7 2-in-1 16AKP10 Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 006/198] ALSA: hda/realtek: Add quirk for ASUS ROG Flow Z13-KJP GZ302EAC Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 007/198] media: rkvdec: reduce stack usage in rkvdec_init_v4l2_vp9_count_tbl() Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 008/198] ALSA: asihpi: avoid write overflow check warning Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 009/198] Bluetooth: hci_sync: annotate data-races around hdev->req_status Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 010/198] ASoC: amd: yc: Add DMI quirk for Thin A15 B7VF Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 011/198] ASoC: SOF: topology: reject invalid vendor array size in token parser Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 012/198] can: mcp251x: add error handling for power enable in open and resume Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 013/198] ASoC: amd: acp: add ASUS HN7306EA quirk for legacy SDW machine Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 014/198] ALSA:usb:qcom: add AUXILIARY_BUS to Kconfig dependencies Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 015/198] platform/x86: asus-nb-wmi: add DMI quirk for ASUS ROG Flow Z13-KJP GZ302EAC Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 016/198] btrfs: fix zero size inode with non-zero size after log replay Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 017/198] platform/x86: hp-wmi: Add support for Omen 16-wf1xxx (8C76) Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 018/198] btrfs: tracepoints: get correct superblock from dentry in event btrfs_sync_file() Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 019/198] ALSA: hda/realtek: Add mute LED quirk for HP Pavilion 15-eg0xxx Greg Kroah-Hartman
2026-04-20 15:39 ` [PATCH 6.18 020/198] netfilter: ctnetlink: ensure safe access to master conntrack Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 021/198] drm/amdgpu: Handle GPU page faults correctly on non-4K page systems Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 022/198] srcu: Use irq_work to start GP in tiny SRCU Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 023/198] ALSA: hda/realtek: add HP Laptop 15-fd0xxx mute LED quirk Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 024/198] netfilter: nft_set_pipapo_avx2: dont return non-matching entry on expiry Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 025/198] ALSA: hda/realtek: add quirk for Framework F111:000F Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 026/198] wifi: wl1251: validate packet IDs before indexing tx_frames Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 027/198] ASoC: soc-core: call missing INIT_LIST_HEAD() for card_aux_list Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 028/198] ALSA: hda/realtek: Add quirk for Samsung Book2 Pro 360 (NP950QED) Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 029/198] ALSA: usb-audio: Fix quirk flags for NeuralDSP Quad Cortex Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 030/198] ALSA: hda/realtek: Add quirk for Lenovo Yoga Slim 7 14AKP10 Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 031/198] drm/amdkfd: Fix queue preemption/eviction failures by aligning control stack size to GPU page size Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 032/198] fs/smb/client: fix out-of-bounds read in cifs_sanitize_prepath Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 033/198] ASoC: amd: yc: Add DMI entry for HP Laptop 15-fc0xxx Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 034/198] ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14IMH9 Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 035/198] pinctrl: intel: Fix the revision for new features (1kOhm PD, HW debouncer) Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 036/198] platform/x86/amd: pmc: Add Thinkpad L14 Gen3 to quirk_s2idle_bug Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 037/198] HID: Intel-thc-hid: Intel-quickspi: Add NVL Device IDs Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 038/198] HID: quirks: add HID_QUIRK_ALWAYS_POLL for 8BitDo Pro 3 Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 039/198] ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14IAH10 Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 040/198] HID: roccat: fix use-after-free in roccat_report_event Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 041/198] ata: ahci: force 32-bit DMA for JMicron JMB582/JMB585 Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 042/198] wifi: brcmfmac: validate bsscfg indices in IF events Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 043/198] net: sfp: add quirks for Hisense and HSGQ GPON ONT SFP modules Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 044/198] x86: shadow stacks: proper error handling for mmap lock Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 045/198] ASoC: stm32_sai: fix incorrect BCLK polarity for DSP_A/B, LEFT_J Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 046/198] soc: aspeed: socinfo: Mask table entries for accurate SoC ID matching Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 047/198] arm64: dts: qcom: hamoa/x1: fix idle exit latency Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 048/198] arm64: dts: qcom: qcm6490-idp: Fix WCD9370 reset GPIO polarity Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 049/198] arm64: dts: imx8mq: Set the correct gpu_ahb clock frequency Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 050/198] arm64: dts: imx93-9x9-qsb: change usdhc tuning step for eMMC and SD Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 051/198] arm64: dts: imx91-tqma9131: improve eMMC pad configuration Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 052/198] arm64: dts: imx93-tqma9352: " Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 053/198] arm64: dts: qcom: monaco: Fix UART10 pinconf Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 054/198] soc: qcom: pd-mapper: Fix element length in servreg_loc_pfr_req_ei Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 055/198] tools/power/turbostat: Fix microcode patch level output for AMD/Hygon Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 056/198] tools/power turbostat: Fix --show/--hide for individual cpuidle counters Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 057/198] arm64: dts: qcom: monaco: Reserve full Gunyah metadata region Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 058/198] ARM: dts: microchip: sam9x7: fix gpio-lines count for pioB Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 059/198] PCI: hv: Set default NUMA node to 0 for devices without affinity info Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 060/198] HID: amd_sfh: dont log error when device discovery fails with -EOPNOTSUPP Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 061/198] xfrm: account XFRMA_IF_ID in aevent size calculation Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 062/198] dma-mapping: add DMA_ATTR_CPU_CACHE_CLEAN Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 063/198] dma-debug: track cache clean flag in entries Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 064/198] dma-debug: suppress cacheline overlap warning when arch has no DMA alignment requirement Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 065/198] drm/vc4: Release runtime PM reference after binding V3D Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 066/198] drm/vc4: Fix memory leak of BO array in hang state Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 067/198] drm/vc4: Fix a memory leak in hang state error path Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 068/198] drm/vc4: Protect madv read in vc4_gem_object_mmap() with madv_lock Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 069/198] eventpoll: defer struct eventpoll free to RCU grace period Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 070/198] net: sched: act_csum: validate nested VLAN headers Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 071/198] net: lapbether: handle NETDEV_PRE_TYPE_CHANGE Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 072/198] net: airoha: Fix memory leak in airoha_qdma_rx_process() Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 073/198] ipv6: ioam: fix potential NULL dereferences in __ioam6_fill_trace_data() Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 074/198] bridge: guard local VLAN-0 FDB helpers against NULL vlan group Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 075/198] rtnetlink: add missing netlink_ns_capable() check for peer netns Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 076/198] ipv4: nexthop: avoid duplicate NHA_HW_STATS_ENABLE on nexthop group dump Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 077/198] ipv4: nexthop: allocate skb dynamically in rtm_get_nexthop() Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 078/198] ipv4: icmp: fix null-ptr-deref in icmp_build_probe() Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 079/198] net: increase IP_TUNNEL_RECURSION_LIMIT to 5 Greg Kroah-Hartman
2026-04-20 15:40 ` [PATCH 6.18 080/198] nfc: s3fwrn5: allocate rx skb before consuming bytes Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 081/198] net: stmmac: Fix PTP ref clock for Tegra234 Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 082/198] dt-bindings: net: Fix Tegra234 MGBE PTP clock Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 083/198] tracing/probe: reject non-closed empty immediate strings Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 084/198] ice: ptp: dont WARN when controlling PF is unavailable Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 085/198] ixgbe: stop re-reading flash on every get_drvinfo for e610 Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 086/198] ixgbevf: add missing negotiate_features op to Hyper-V ops table Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 087/198] e1000: check return value of e1000_read_eeprom Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 088/198] xsk: tighten UMEM headroom validation to account for tailroom and min frame Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 089/198] xsk: respect tailroom for ZC setups Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 090/198] xsk: fix XDP_UMEM_SG_FLAG issues Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 091/198] xsk: validate MTU against usable frame size on bind Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 092/198] xfrm: Wait for RCU readers during policy netns exit Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 093/198] xfrm: fix refcount leak in xfrm_migrate_policy_find Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 094/198] xfrm_user: fix info leak in build_mapping() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 095/198] ASoC: Intel: avs: Fix memory leak in avs_register_i2s_test_boards() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 096/198] drm/xe: Fix bug in idledly unit conversion Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 097/198] selftests: net: bridge_vlan_mcast: wait for h1 before querier check Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 098/198] ipvs: fix NULL deref in ip_vs_add_service error path Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 099/198] netfilter: nfnetlink_log: initialize nfgenmsg in NLMSG_DONE terminator Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 100/198] netfilter: xt_multiport: validate range encoding in checkentry Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 101/198] netfilter: ip6t_eui64: reject invalid MAC header for all packets Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 102/198] netfilter: nfnetlink_queue: nfqnl_instance GFP_ATOMIC -> GFP_KERNEL_ACCOUNT allocation Greg Kroah-Hartman
2026-04-20 15:41 ` Greg Kroah-Hartman [this message]
2026-04-20 15:41 ` [PATCH 6.18 104/198] ASoC: SDCA: Fix overwritten var within for loop Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 105/198] ASoC: amd: acp: update DMI quirk and add ACP DMIC for Lenovo platforms Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 106/198] net: mdio: realtek-rtl9300: use scoped device_for_each_child_node loop Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 107/198] net: ioam6: fix OOB and missing lock Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 108/198] net: txgbe: leave space for null terminators on property_entry Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 109/198] af_unix: read UNIX_DIAG_VFS data under unix_state_lock Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 110/198] devlink: Fix incorrect skb socket family dumping Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 111/198] net: ipa: fix GENERIC_CMD register field masks for IPA v5.0+ Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 112/198] net: ipa: fix event ring index not programmed " Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 113/198] l2tp: Drop large packets with UDP encap Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 114/198] gpio: tegra: fix irq_release_resources calling enable instead of disable Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 115/198] crypto: af_alg - limit RX SG extraction by receive buffer budget Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 116/198] perf/x86/intel/uncore: Skip discovery table for offline dies Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 117/198] sched/deadline: Use revised wakeup rule for dl_server Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 118/198] clockevents: Prevent timer interrupt starvation Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 119/198] crypto: af_alg - Fix page reassignment overflow in af_alg_pull_tsgl Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 120/198] crypto: algif_aead - Fix minimum RX size check for decryption Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 121/198] netfilter: conntrack: add missing netlink policy validations Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 122/198] nfc: llcp: add missing return after LLCP_CLOSED checks Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 123/198] can: raw: fix ro->uniq use-after-free in raw_rcv() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 124/198] i2c: s3c24xx: check the size of the SMBUS message before using it Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 125/198] staging: rtl8723bs: initialize le_tmp64 in rtw_BIP_verify() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 126/198] HID: alps: fix NULL pointer dereference in alps_raw_event() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 127/198] HID: core: clamp report_size in s32ton() to avoid undefined shift Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 128/198] net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 129/198] NFC: digital: Bounds check NFC-A cascade depth in SDD response handler Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 130/198] drm/vc4: platform_get_irq_byname() returns an int Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 131/198] ALSA: usx2y: us144mkii: fix NULL deref on missing interface 0 Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 132/198] ALSA: fireworks: bound device-supplied status before string array lookup Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 133/198] fbdev: tdfxfb: avoid divide-by-zero on FBIOPUT_VSCREENINFO Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 134/198] usb: gadget: f_ncm: validate minimum block_len in ncm_unwrap_ntb() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 135/198] usb: gadget: f_phonet: fix skb frags[] overflow in pn_rx_complete() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 136/198] usb: gadget: renesas_usb3: validate endpoint index in standard request handlers Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 137/198] smb: client: fix off-by-8 bounds check in check_wsl_eas() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 138/198] smb: client: fix OOB reads parsing symlink error response Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 139/198] ksmbd: validate EaNameLength in smb2_get_ea() Greg Kroah-Hartman
2026-04-20 15:41 ` [PATCH 6.18 140/198] ksmbd: require 3 sub-authorities before reading sub_auth[2] Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 141/198] ksmbd: fix mechToken leak when SPNEGO decode fails after token alloc Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 142/198] smb: client: avoid double-free in smbd_free_send_io() after smbd_send_batch_flush() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 143/198] smb: server: avoid double-free in smb_direct_free_sendmsg after smb_direct_flush_send_list() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 144/198] usbip: validate number_of_packets in usbip_pack_ret_submit() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 145/198] usb: typec: fusb302: Switch to threaded IRQ handler Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 146/198] usb: storage: Expand range of matched versions for VL817 quirks entry Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 147/198] USB: cdc-acm: Add quirks for Yoga Book 9 14IAH10 INGENIC touchscreen Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 148/198] usb: gadget: f_hid: dont call cdev_init while cdev in use Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 149/198] usb: port: add delay after usb_hub_set_port_power() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 150/198] fbdev: udlfb: avoid divide-by-zero on FBIOPUT_VSCREENINFO Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 151/198] scripts: generate_rust_analyzer.py: avoid FD leak Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 152/198] wifi: rtw88: fix device leak on probe failure Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 153/198] staging: sm750fb: fix division by zero in ps_to_hz() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 154/198] USB: serial: option: add Telit Cinterion FN990A MBIM composition Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 155/198] Docs/admin-guide/mm/damon/reclaim: warn commit_inputs vs param updates race Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 156/198] ALSA: ctxfi: Limit PTP to a single page Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 157/198] dcache: Limit the minimal number of bucket to two Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 158/198] arm64: mm: Handle invalid large leaf mappings correctly Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 159/198] media: vidtv: fix NULL pointer dereference in vidtv_channel_pmt_match_sections Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 160/198] ocfs2: fix possible deadlock between unlink and dio_end_io_write Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 161/198] ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 162/198] ocfs2: handle invalid dinode in ocfs2_group_extend Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 163/198] PCI: endpoint: pci-epf-vntb: Stop cmd_handler work in epf_ntb_epc_cleanup Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 164/198] PCI: endpoint: pci-epf-vntb: Remove duplicate resource teardown Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 165/198] KVM: selftests: Remove duplicate LAUNCH_UPDATE_VMSA call in SEV-ES migrate test Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 166/198] KVM: SEV: Reject attempts to sync VMSA of an already-launched/encrypted vCPU Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 167/198] KVM: SEV: Protect *all* of sev_mem_enc_register_region() with kvm->lock Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 168/198] KVM: SEV: Disallow LAUNCH_FINISH if vCPUs are actively being created Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 169/198] KVM: SEV: Lock all vCPUs when synchronzing VMSAs for SNP launch finish Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 170/198] KVM: SEV: Drop WARN on large size for KVM_MEMORY_ENCRYPT_REG_REGION Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 171/198] selftests/bpf: Test refinement of single-value tnum Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 172/198] KVM: Remove subtle "struct kvm_stats_desc" pseudo-overlay Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 173/198] KVM: x86: Use __DECLARE_FLEX_ARRAY() for UAPI structures with VLAs Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 174/198] ocfs2: add inline inode consistency check to ocfs2_validate_inode_block() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 175/198] ocfs2: validate inline data i_size during inode read Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 176/198] ocfs2: fix out-of-bounds write in ocfs2_write_end_inline Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 177/198] checkpatch: add support for Assisted-by tag Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 178/198] x86-64: rename misleadingly named __copy_user_nocache() function Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 179/198] x86: rename and clean up __copy_from_user_inatomic_nocache() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 180/198] x86-64/arm64/powerpc: clean up and rename __copy_from_user_flushcache Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 181/198] KVM: x86: Use scratch field in MMIO fragment to hold small write values Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 182/198] ASoC: qcom: q6apm: move component registration to unmanaged version Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 183/198] mm/kasan: fix double free for kasan pXds Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 184/198] mm: blk-cgroup: fix use-after-free in cgwb_release_workfn() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 185/198] media: vidtv: fix nfeeds state corruption on start_streaming failure Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 186/198] media: mediatek: vcodec: fix use-after-free in encoder release path Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 187/198] media: em28xx: fix use-after-free in em28xx_v4l2_open() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 188/198] hwmon: (powerz) Fix use-after-free on USB disconnect Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 189/198] ALSA: 6fire: fix use-after-free on disconnect Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 190/198] bcache: fix cached_dev.sb_bio use-after-free and crash Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 191/198] wireguard: device: use exit_rtnl callback instead of manual rtnl_lock in pre_exit Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 192/198] media: as102: fix to not free memory after the device is registered in as102_usb_probe() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 193/198] nilfs2: fix NULL i_assoc_inode dereference in nilfs_mdt_save_to_shadow_map Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 194/198] media: vidtv: fix pass-by-value structs causing MSAN warnings Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 195/198] media: hackrf: fix to not free memory after the device is registered in hackrf_probe() Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 196/198] mm/userfaultfd: fix hugetlb fault mutex hash calculation Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 197/198] dma-debug: Allow multiple invocations of overlapping entries Greg Kroah-Hartman
2026-04-20 15:42 ` [PATCH 6.18 198/198] dma-mapping: handle DMA_ATTR_CPU_CACHE_CLEAN in trace output Greg Kroah-Hartman
2026-04-20 17:29 ` [PATCH 6.18 000/198] 6.18.24-rc1 review Florian Fainelli
2026-04-20 21:11 ` Peter Schneider
2026-04-21  7:04 ` Ron Economos
2026-04-21  8:08 ` Brett A C Sheffield
2026-04-21  9:55 ` Miguel Ojeda
2026-04-21 15:02   ` Greg KH
2026-04-21 11:16 ` Wentao Guan
2026-04-21 14:04 ` Mark Brown
2026-04-21 15:02   ` Greg Kroah-Hartman
2026-04-21 15:37 ` Dileep malepu
2026-04-21 16:55 ` Shuah Khan
2026-04-21 19:33 ` Pavel Machek
2026-04-22  7:03 ` Barry K. Nathan

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=20260420153939.310479273@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=fw@strlen.de \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=scott.k.mitch1@gmail.com \
    --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.