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,
	Tristan Madani <tristan@talencesecurity.com>,
	Florian Westphal <fw@strlen.de>,
	Pablo Neira Ayuso <pablo@netfilter.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.6 115/186] netfilter: x_tables: add and use xtables_unregister_table_exit
Date: Thu, 28 May 2026 21:49:55 +0200	[thread overview]
Message-ID: <20260528194932.047584529@linuxfoundation.org> (raw)
In-Reply-To: <20260528194928.941004471@linuxfoundation.org>

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

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

From: Florian Westphal <fw@strlen.de>

[ Upstream commit b4597d5fd7d2f8cebfffd40dffb5e003cc78964c ]

Previous change added xtables_unregister_table_pre_exit to detach the
table from the packetpath and to unlink it from the active table list.
In case of rmmod, userspace that is doing set/getsockopt for this table
will not be able to re-instantiate the table:
 1. The larval table has been removed already
 2. existing instantiated table is no longer on the xt pernet table list.

This adds the second stage helper:

unlink the table from the dying list, free the hook ops (if any) and do
the audit notification.  It replaces xt_unregister_table().

Fixes: fdacd57c79b7 ("netfilter: x_tables: never register tables by default")
Reported-by: Tristan Madani <tristan@talencesecurity.com>
Reviewed-by: Tristan Madani <tristan@talencesecurity.com>
Closes: https://lore.kernel.org/netfilter-devel/20260429175613.1459342-1-tristmd@gmail.com/
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/linux/netfilter/x_tables.h |  2 +-
 net/ipv4/netfilter/arp_tables.c    |  9 ++--
 net/ipv4/netfilter/ip_tables.c     |  9 ++--
 net/ipv4/netfilter/iptable_nat.c   |  5 +-
 net/ipv6/netfilter/ip6_tables.c    |  9 ++--
 net/ipv6/netfilter/ip6table_nat.c  |  5 +-
 net/netfilter/x_tables.c           | 81 +++++++++++++++++++++++-------
 7 files changed, 83 insertions(+), 37 deletions(-)

diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
index df2022fe440b0..706f08839050a 100644
--- a/include/linux/netfilter/x_tables.h
+++ b/include/linux/netfilter/x_tables.h
@@ -309,8 +309,8 @@ struct xt_table *xt_register_table(struct net *net,
 				   const struct xt_table *table,
 				   struct xt_table_info *bootstrap,
 				   struct xt_table_info *newinfo);
-void *xt_unregister_table(struct xt_table *table);
 void xt_unregister_table_pre_exit(struct net *net, u8 af, const char *name);
+struct xt_table *xt_unregister_table_exit(struct net *net, u8 af, const char *name);
 
 struct xt_table_info *xt_replace_table(struct xt_table *table,
 				       unsigned int num_counters,
diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
index 9b905c6562313..f9dd18244f251 100644
--- a/net/ipv4/netfilter/arp_tables.c
+++ b/net/ipv4/netfilter/arp_tables.c
@@ -1501,13 +1501,11 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
 
 static void __arpt_unregister_table(struct net *net, struct xt_table *table)
 {
-	struct xt_table_info *private;
-	void *loc_cpu_entry;
+	struct xt_table_info *private = table->private;
 	struct module *table_owner = table->me;
+	void *loc_cpu_entry;
 	struct arpt_entry *iter;
 
-	private = xt_unregister_table(table);
-
 	/* Decrease module usage counts and free resources */
 	loc_cpu_entry = private->entries;
 	xt_entry_foreach(iter, loc_cpu_entry, private->size)
@@ -1515,6 +1513,7 @@ static void __arpt_unregister_table(struct net *net, struct xt_table *table)
 	if (private->number > private->initial_entries)
 		module_put(table_owner);
 	xt_free_table_info(private);
+	kfree(table);
 }
 
 int arpt_register_table(struct net *net,
@@ -1583,7 +1582,7 @@ int arpt_register_table(struct net *net,
 
 void arpt_unregister_table(struct net *net, const char *name)
 {
-	struct xt_table *table = xt_find_table(net, NFPROTO_ARP, name);
+	struct xt_table *table = xt_unregister_table_exit(net, NFPROTO_ARP, name);
 
 	if (table)
 		__arpt_unregister_table(net, table);
diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
index 8240b3b0e0260..02730b6ab8203 100644
--- a/net/ipv4/netfilter/ip_tables.c
+++ b/net/ipv4/netfilter/ip_tables.c
@@ -1704,12 +1704,10 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
 
 static void __ipt_unregister_table(struct net *net, struct xt_table *table)
 {
-	struct xt_table_info *private;
-	void *loc_cpu_entry;
+	struct xt_table_info *private = table->private;
 	struct module *table_owner = table->me;
 	struct ipt_entry *iter;
-
-	private = xt_unregister_table(table);
+	void *loc_cpu_entry;
 
 	/* Decrease module usage counts and free resources */
 	loc_cpu_entry = private->entries;
@@ -1718,6 +1716,7 @@ static void __ipt_unregister_table(struct net *net, struct xt_table *table)
 	if (private->number > private->initial_entries)
 		module_put(table_owner);
 	xt_free_table_info(private);
+	kfree(table);
 }
 
 int ipt_register_table(struct net *net, const struct xt_table *table,
@@ -1791,7 +1790,7 @@ int ipt_register_table(struct net *net, const struct xt_table *table,
 
 void ipt_unregister_table_exit(struct net *net, const char *name)
 {
-	struct xt_table *table = xt_find_table(net, NFPROTO_IPV4, name);
+	struct xt_table *table = xt_unregister_table_exit(net, NFPROTO_IPV4, name);
 
 	if (table)
 		__ipt_unregister_table(net, table);
diff --git a/net/ipv4/netfilter/iptable_nat.c b/net/ipv4/netfilter/iptable_nat.c
index ca6964b957ead..87d934b12bcb6 100644
--- a/net/ipv4/netfilter/iptable_nat.c
+++ b/net/ipv4/netfilter/iptable_nat.c
@@ -119,8 +119,11 @@ static int iptable_nat_table_init(struct net *net)
 	}
 
 	ret = ipt_nat_register_lookups(net);
-	if (ret < 0)
+	if (ret < 0) {
+		xt_unregister_table_pre_exit(net, NFPROTO_IPV4, "nat");
+		synchronize_rcu();
 		ipt_unregister_table_exit(net, "nat");
+	}
 
 	kfree(repl);
 	return ret;
diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
index c956c2bd73d59..2cbf346940d29 100644
--- a/net/ipv6/netfilter/ip6_tables.c
+++ b/net/ipv6/netfilter/ip6_tables.c
@@ -1713,12 +1713,10 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
 
 static void __ip6t_unregister_table(struct net *net, struct xt_table *table)
 {
-	struct xt_table_info *private;
-	void *loc_cpu_entry;
+	struct xt_table_info *private = table->private;
 	struct module *table_owner = table->me;
 	struct ip6t_entry *iter;
-
-	private = xt_unregister_table(table);
+	void *loc_cpu_entry;
 
 	/* Decrease module usage counts and free resources */
 	loc_cpu_entry = private->entries;
@@ -1727,6 +1725,7 @@ static void __ip6t_unregister_table(struct net *net, struct xt_table *table)
 	if (private->number > private->initial_entries)
 		module_put(table_owner);
 	xt_free_table_info(private);
+	kfree(table);
 }
 
 int ip6t_register_table(struct net *net, const struct xt_table *table,
@@ -1797,7 +1796,7 @@ int ip6t_register_table(struct net *net, const struct xt_table *table,
 
 void ip6t_unregister_table_exit(struct net *net, const char *name)
 {
-	struct xt_table *table = xt_find_table(net, NFPROTO_IPV6, name);
+	struct xt_table *table = xt_unregister_table_exit(net, NFPROTO_IPV6, name);
 
 	if (table)
 		__ip6t_unregister_table(net, table);
diff --git a/net/ipv6/netfilter/ip6table_nat.c b/net/ipv6/netfilter/ip6table_nat.c
index bef2d309369bc..cf260d8ebdb70 100644
--- a/net/ipv6/netfilter/ip6table_nat.c
+++ b/net/ipv6/netfilter/ip6table_nat.c
@@ -121,8 +121,11 @@ static int ip6table_nat_table_init(struct net *net)
 	}
 
 	ret = ip6t_nat_register_lookups(net);
-	if (ret < 0)
+	if (ret < 0) {
+		xt_unregister_table_pre_exit(net, NFPROTO_IPV6, "nat");
+		synchronize_rcu();
 		ip6t_unregister_table_exit(net, "nat");
+	}
 
 	kfree(repl);
 	return ret;
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
index 670483735d225..593eb3ebef128 100644
--- a/net/netfilter/x_tables.c
+++ b/net/netfilter/x_tables.c
@@ -55,6 +55,9 @@ static struct list_head xt_templates[NFPROTO_NUMPROTO];
 
 struct xt_pernet {
 	struct list_head tables[NFPROTO_NUMPROTO];
+
+	/* stash area used during netns exit */
+	struct list_head dead_tables[NFPROTO_NUMPROTO];
 };
 
 struct compat_delta {
@@ -1521,23 +1524,6 @@ struct xt_table *xt_register_table(struct net *net,
 }
 EXPORT_SYMBOL_GPL(xt_register_table);
 
-void *xt_unregister_table(struct xt_table *table)
-{
-	struct xt_table_info *private;
-
-	mutex_lock(&xt[table->af].mutex);
-	private = table->private;
-	list_del(&table->list);
-	mutex_unlock(&xt[table->af].mutex);
-	audit_log_nfcfg(table->name, table->af, private->number,
-			AUDIT_XT_OP_UNREGISTER, GFP_KERNEL);
-	kfree(table->ops);
-	kfree(table);
-
-	return private;
-}
-EXPORT_SYMBOL_GPL(xt_unregister_table);
-
 /**
  * xt_unregister_table_pre_exit - pre-shutdown unregister of a table
  * @net: network namespace
@@ -1547,6 +1533,14 @@ EXPORT_SYMBOL_GPL(xt_unregister_table);
  * Unregisters the specified netfilter table from the given network namespace
  * and also unregisters the hooks from netfilter core: no new packets will be
  * processed.
+ *
+ * This must be called prior to xt_unregister_table_exit() from the pernet
+ * .pre_exit callback.  After this call, the table is no longer visible to
+ * the get/setsockopt path.  In case of rmmod, module exit path must have
+ * called xt_unregister_template() prior to unregistering pernet ops to
+ * prevent re-instantiation of the table.
+ *
+ * See also: xt_unregister_table_exit()
  */
 void xt_unregister_table_pre_exit(struct net *net, u8 af, const char *name)
 {
@@ -1556,6 +1550,7 @@ void xt_unregister_table_pre_exit(struct net *net, u8 af, const char *name)
 	mutex_lock(&xt[af].mutex);
 	list_for_each_entry(t, &xt_net->tables[af], list) {
 		if (strcmp(t->name, name) == 0) {
+			list_move(&t->list, &xt_net->dead_tables[af]);
 			mutex_unlock(&xt[af].mutex);
 
 			if (t->ops) /* nat table registers with nat core, t->ops is NULL. */
@@ -1566,6 +1561,50 @@ void xt_unregister_table_pre_exit(struct net *net, u8 af, const char *name)
 	mutex_unlock(&xt[af].mutex);
 }
 EXPORT_SYMBOL(xt_unregister_table_pre_exit);
+
+/**
+ * xt_unregister_table_exit - remove a table during namespace teardown
+ * @net: the network namespace from which to unregister the table
+ * @af: address family (e.g., NFPROTO_IPV4, NFPROTO_IPV6)
+ * @name: name of the table to unregister
+ *
+ * Completes the unregister process for a table. This must be called from
+ * the pernet ops .exit callback. This is the second stage after
+ * xt_unregister_table_pre_exit().
+ *
+ * pair with xt_unregister_table_pre_exit() during namespace shutdown.
+ *
+ * Return: the unregistered table or NULL if the table was never
+ *         instantiated. The caller needs to kfree() the table after it
+ *         has removed the family specific matches/targets.
+ */
+struct xt_table *xt_unregister_table_exit(struct net *net, u8 af, const char *name)
+{
+	struct xt_pernet *xt_net = net_generic(net, xt_pernet_id);
+	struct xt_table *table;
+
+	mutex_lock(&xt[af].mutex);
+	list_for_each_entry(table, &xt_net->dead_tables[af], list) {
+		struct nf_hook_ops *ops = NULL;
+
+		if (strcmp(table->name, name) != 0)
+			continue;
+
+		list_del(&table->list);
+
+		audit_log_nfcfg(table->name, table->af, table->private->number,
+				AUDIT_XT_OP_UNREGISTER, GFP_KERNEL);
+		swap(table->ops, ops);
+		mutex_unlock(&xt[af].mutex);
+
+		kfree(ops);
+		return table;
+	}
+	mutex_unlock(&xt[af].mutex);
+
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(xt_unregister_table_exit);
 #endif
 
 #ifdef CONFIG_PROC_FS
@@ -2012,8 +2051,10 @@ static int __net_init xt_net_init(struct net *net)
 	struct xt_pernet *xt_net = net_generic(net, xt_pernet_id);
 	int i;
 
-	for (i = 0; i < NFPROTO_NUMPROTO; i++)
+	for (i = 0; i < NFPROTO_NUMPROTO; i++) {
 		INIT_LIST_HEAD(&xt_net->tables[i]);
+		INIT_LIST_HEAD(&xt_net->dead_tables[i]);
+	}
 	return 0;
 }
 
@@ -2022,8 +2063,10 @@ static void __net_exit xt_net_exit(struct net *net)
 	struct xt_pernet *xt_net = net_generic(net, xt_pernet_id);
 	int i;
 
-	for (i = 0; i < NFPROTO_NUMPROTO; i++)
+	for (i = 0; i < NFPROTO_NUMPROTO; i++) {
 		WARN_ON_ONCE(!list_empty(&xt_net->tables[i]));
+		WARN_ON_ONCE(!list_empty(&xt_net->dead_tables[i]));
+	}
 }
 
 static struct pernet_operations xt_net_ops = {
-- 
2.53.0




  parent reply	other threads:[~2026-05-28 20:50 UTC|newest]

Thread overview: 199+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-28 19:48 [PATCH 6.6 000/186] 6.6.142-rc1 review Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 001/186] mptcp: sync the msk->sndbuf at accept() time Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 002/186] mptcp: pm: ADD_ADDR rtx: allow ID 0 Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 003/186] mptcp: pm: ADD_ADDR rtx: always decrease sk refcount Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 004/186] mptcp: pm: ADD_ADDR rtx: free sk if last Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 005/186] spi: spidev: fix lock inversion between spi_lock and buf_lock Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 006/186] driver core: generalize driver_override in struct device Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 007/186] driver core: platform: use generic driver_override infrastructure Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 008/186] s390/debug: Reject zero-length input before trimming a newline Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 009/186] wifi: mac80211: check tdls flag in ieee80211_tdls_oper Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 010/186] Revert "x86/vdso: Fix output operand size of RDPID" Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 011/186] ksmbd: avoid reclaiming expired durable opens by the client Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 012/186] ksmbd: add durable scavenger timer Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 013/186] ksmbd: validate owner of durable handle on reconnect Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 014/186] ksmbd: close durable scavenger races against m_fp_list lookups Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 015/186] af_unix: Give up GC if MSG_PEEK intervened Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 016/186] smb: client: reject userspace cifs.spnego descriptions Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 017/186] Revert "ice: fix double-free of tx_buf skb" Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 018/186] Revert "ice: Remove jumbo_remove step from TX path" Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 019/186] Revert "s390/cio: Update purge function to unregister the unused subchannels" Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 020/186] Revert "af_unix: Reject SIOCATMARK on non-stream sockets" Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 021/186] i3c: mipi-i3c-hci: Correct RING_CTRL_ABORT handling in DMA dequeue Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 022/186] sysfs: dont remove existing directory on update failure Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 023/186] mm/damon/sysfs-schemes: call missing mem_cgroup_iter_break() Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 024/186] ksmbd: fix null pointer dereference in compare_guid_key() Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 025/186] ksmbd: fix SID memory leak in set_posix_acl_entries_dacl() on overflow Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 026/186] smb: client: protect tc_count increment in smb2_find_smb_sess_tcon_unlocked() Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 027/186] smb/server: promote S_DEL_ON_CLS to S_DEL_PENDING when close Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 028/186] hwmon: (pmbus/adm1266) widen blackbox-info buffer to I2C_SMBUS_BLOCK_MAX Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 029/186] ALSA: ua101: Reject too-short USB descriptors Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 030/186] ALSA: pcm: Dont setup bogus iov_iter for silencing Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 031/186] ALSA: asihpi: Fix potential OOB array access at reading cache Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 032/186] efi: Allocate runtime workqueue before ACPI init Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 033/186] drivers/base/memory: fix memory block reference leak in poison accounting Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 034/186] net: wwan: iosm: fix potential memory leaks in ipc_imem_init() Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 035/186] Bluetooth: fix UAF in l2cap_sock_cleanup_listen() vs l2cap_conn_del() Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 036/186] Bluetooth: ISO: drop ISO_END frames received without prior ISO_START Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 037/186] Bluetooth: bnep: Fix UAF read of dev->name Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 038/186] Bluetooth: hci_uart: fix UAFs and race conditions in close and init paths Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 039/186] Bluetooth: MGMT: validate Add Extended Advertising Data length Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 040/186] Bluetooth: serialize accept_q access Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 041/186] phonet/pep: disable BH around forwarded sk_receive_skb() Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 042/186] net: bcmgenet: keep RBUF EEE/PM disabled Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 043/186] net: ifb: report ethtool stats over num_tx_queues Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 044/186] netfilter: ip6t_hbh: reject oversized option lists Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 045/186] netfilter: nf_queue: hold bridge skb->dev while queued Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 046/186] netfilter: ipset: stop hash:* range iteration at end Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 047/186] netfilter: nft_inner: Fix IPv6 inner_thoff desync Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 048/186] qed: fix double free in qed_cxt_tables_alloc() Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 049/186] ring-buffer: Fix reporting of missed events in iterator Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 050/186] vsock/vmci: fix UAF when peer resets connection during handshake Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 051/186] vsock/virtio: reset connection on receiving queue overflow Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 052/186] wifi: ath11k: clear shared SRNG pointer state on restart Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 053/186] ipv4: raw: reject IP_HDRINCL packets with ihl < 5 Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 054/186] ixgbevf: fix use-after-free in VEPA multicast source pruning Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 055/186] ice: fix setting promisc mode while adding VID filter Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 056/186] wifi: cfg80211: advance loop vars in cfg80211_merge_profile() Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 057/186] cifs: Fix busy dentry used after unmounting Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 058/186] tracing: Do not call map->ops->elt_free() if elt_alloc() fails Greg Kroah-Hartman
2026-05-28 19:48 ` [PATCH 6.6 059/186] arm64: probes: Handle probes on hinted conditional branch instructions Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 060/186] KVM: arm64: vgic-its: Reject restored DTE with out-of-range num_eventid_bits Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 061/186] drm/bridge: chipone-icn6211: use devm_drm_bridge_add in i2c probe Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 062/186] spi: qup: fix error pointer deref after DMA setup failure Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 063/186] phy: tegra: xusb: Fix per-pad high-speed termination calibration Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 064/186] scsi: isci: Fix use-after-free in device removal path Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 065/186] spi: sprd: fix error pointer deref after DMA setup failure Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 066/186] spi: ti-qspi: fix use-after-free " Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 067/186] RDMA/siw: Reject MPA FPDU length underflow before signed receive math Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 068/186] LoongArch: Remove unused code to avoid build warning Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 069/186] device property: set fwnode->secondary to NULL in fwnode_init() Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 070/186] drm/virtio: use uninterruptible resv lock for plane updates Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 071/186] drm/bridge: it66121: acquire reset GPIO in probe Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 072/186] drm/bridge: megachips: remove bridge when irq request fails Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 073/186] drm/amd/display: Fix integer overflow in bios_get_image() Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 074/186] drm/amd/display: Validate GPIO pin LUT table size before iterating Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 075/186] drm/amd/display: Validate payload length and link_index in dc_process_dmub_aux_transfer_async Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 076/186] batman-adv: mcast: fix use-after-free in orig_node RCU release Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 077/186] batman-adv: clear current gateway during teardown Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 078/186] batman-adv: dat: handle forward allocation error Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 079/186] batman-adv: fix fragment reassembly length accounting Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 080/186] batman-adv: fix tp_meter counter underflow during shutdown Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 081/186] batman-adv: frag: disallow unicast fragment in fragment Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 082/186] batman-adv: bla: fix report_work leak on backbone_gw purge Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 083/186] batman-adv: tp_meter: avoid use of uninit sender vars Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 084/186] batman-adv: tp_meter: fix tp_vars reference leak in receiver shutdown Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 085/186] batman-adv: tp_meter: fix race condition in send error reporting Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 086/186] batman-adv: tt: fix negative last_changeset_len Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 087/186] batman-adv: tt: fix negative tt_buff_len Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 088/186] hwmon: (pmbus/adm1266) seed timestamp from the real-time clock Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 089/186] hwmon: (pmbus/adm1266) reject implausible blackbox record_count Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 090/186] hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 091/186] hwmon: (pmbus/adm1266) bounce blackbox records through a protocol-sized buffer Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 092/186] hwmon: (pmbus/adm1266) cap PDIO scan in get_multiple at ADM1266_PDIO_NR Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 093/186] hwmon: (pmbus/adm1266) dont clobber GPIO bits before PDIO read in get_multiple Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 094/186] hwmon: (pmbus/adm1266) register the gpio_chip after pmbus_do_probe() Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 095/186] hwmon: (pmbus/adm1266) register the nvmem device " Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 096/186] hwmon: (pmbus/adm1266) reject short block-read responses in the GPIO accessors Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 097/186] HID: uclogic: Fix regression of input name assignment Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 098/186] firmware: arm_ffa: Check for NULL FF-A ID table while driver registration Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 099/186] firmware: arm_ffa: Skip free_pages on RX buffer alloc failure Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 100/186] kunit: config: Enable KUNIT_DEBUGFS by default Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 101/186] kunit: config: KUNIT_DEBUGFS should depend on DEBUG_FS Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 102/186] pinctrl: qcom: Fix wakeirq map by removing disconnected irqs for sm8150 Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 103/186] ARM: integrator: Fix early initialization Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 104/186] ALSA: hda: cs35l56: Put ACPI device after setting companion Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 105/186] btrfs: tracepoints: fix sleep while in atomic context in btrfs_sync_file() Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 106/186] netfilter: x_tables: unregister the templates first Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 107/186] netfilter: arptables: allow xtables-nft only builds Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 108/186] netfilter: xtables: " Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 109/186] netfilter: ebtables: " Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 110/186] netfilter: xtables: fix up kconfig dependencies Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 111/186] netfilter: arptables: Select NETFILTER_FAMILY_ARP when building arp_tables.c Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 112/186] netfilter: Make legacy configs user selectable Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 113/186] netfilter: Exclude LEGACY TABLES on PREEMPT_RT Greg Kroah-Hartman
2026-05-31  4:53   ` Matthieu Baerts
2026-06-01  2:11     ` Sasha Levin
2026-05-28 19:49 ` [PATCH 6.6 114/186] netfilter: x_tables: add and use xt_unregister_table_pre_exit Greg Kroah-Hartman
2026-05-28 19:49 ` Greg Kroah-Hartman [this message]
2026-05-28 19:49 ` [PATCH 6.6 116/186] netfilter: ebtables: move to two-stage removal scheme Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 117/186] netfilter: ebtables: close dangling table module init race Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 118/186] netfilter: x_tables: " Greg Kroah-Hartman
2026-05-28 19:49 ` [PATCH 6.6 119/186] netfilter: bridge: eb_tables: close " Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 120/186] kprobes: skip non-symbol addresses in kprobe_add_ksym_blacklist() Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 121/186] test_kprobes: clear kprobes between test runs Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 122/186] tcp: Fix imbalanced icsk_accept_queue count Greg Kroah-Hartman
2026-05-28 19:50 ` [Intel-wired-lan] [PATCH 6.6 123/186] ice: fix locking in ice_dcb_rebuild() Greg Kroah-Hartman
2026-05-28 19:50   ` Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 124/186] net: lan966x: avoid unregistering netdev on register failure Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 125/186] phy: marvell: mvebu-a3700-utmi: fix incorrect USB2_PHY_CTRL register access Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 126/186] irqchip/ath79-cpu: Remove unused function Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 127/186] irq_work: Fix use-after-free in irq_work_single() on PREEMPT_RT Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 128/186] zonefs: handle integer overflow in zonefs_fname_to_fno Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 129/186] netfs: Fix overrun check in netfs_extract_user_iter() Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 130/186] net: ethernet: cortina: Make RX SKB per-port Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 131/186] net: ethernet: cortina: Drop half-assembled SKB Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 132/186] net: ethernet: cortina: Carry over frag counter Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 133/186] net: ethernet: cs89x0: remove stale CONFIG_MACH_MX31ADS reference Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 134/186] wifi: ath11k: fix error path leaks in some WMI WOW calls Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 135/186] wifi: ath11k: fix error path leak in ath11k_tm_cmd_wmi_ftm() Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 136/186] HID: quirks: really enable the intended work around for appledisplay Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 137/186] accel/qaic: Add overflow check to remap_pfn_range during mmap Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 138/186] net/smc: avoid NULL deref of conn->lnk in smc_msg_event tracepoint Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 139/186] ethtool: fix ethnl_bitmap32_not_zero() bit interval semantics Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 140/186] drm/msm/dsi: dont dump registers past the mapped region Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 141/186] drm/msm: Fix iommu_map_sgtable() return value check and avoid WARN Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 142/186] powerpc/time: Remove redundant preempt_disable|enable() calls from arch_irq_work_raise() Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 143/186] net/smc: reject CHID-0 ACCEPT that matches an empty ism_dev slot Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 144/186] net: tls: fix off-by-one in sg_chain entry count for wrapped sk_msg ring Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 145/186] net: tls: prevent chain-after-chain in plain text SG Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 146/186] net: phy: c45: add genphy_c45_pma_read_ext_abilities() function Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 147/186] net: phy: DP83TC811: add reading of abilities Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 148/186] x86/xen: Fix xen_e820_swap_entry_with_ram() Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 149/186] tls: Preserve sk_err across recvmsg() when data has been copied Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 150/186] net/mlx5: Do not restore destination-less TC rules Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 151/186] spi: mtk-snfi: Fix resource leak in mtk_snand_read_page_cache() Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 152/186] drm/msm/snapshot: fix dumping of the unaligned regions Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 153/186] wifi: ath11k: fix peer resolution on rx path when peer_id=0 Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 154/186] net: dsa: mt7530: fix FDB entries not aging out with short timeout Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 155/186] net: dsa: mt7530: rename mt753x_bpdu_port_fw enum to mt753x_to_cpu_fw Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 156/186] net: dsa: mt7530: preserve VLAN tags on trapped link-local frames Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 157/186] net: mana: Fix TOCTOU double-fetch of hwc_msg_id from DMA buffer Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 158/186] platform/x86: adv_swbutton: Check ACPI_HANDLE() against NULL Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 159/186] platform/x86: hp_accel: Check ACPI_COMPANION() " Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 160/186] platform/x86: intel-hid: Check ACPI_HANDLE() " Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 161/186] platform/x86: intel-vbtn: " Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 162/186] RDMA/rtrs: Fix use-after-free in path file creation cleanup Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 163/186] net: bridge: Flush multicast groups when snooping is disabled Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 164/186] bridge: mcast: Fix a possible use-after-free when removing a bridge port Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 165/186] pds_core: fix error handling in pdsc_devcmd_wait Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 166/186] pds_core: fix debugfs_lookup dentry leak and error handling Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 167/186] ptrace: Convert ptrace_attach() to use lock guards Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 168/186] ALSA: seq: ump: Use guard() for locking Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 169/186] ALSA: seq: Serialize UMP output teardown with event_input Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 170/186] tracing: Avoid NULL return from hist_field_name() on truncation Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 171/186] Bluetooth: btmtk: add the function to get the fw name Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 172/186] Bluetooth: btusb: mediatek: refactor the function btusb_mtk_reset Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 173/186] Bluetooth: btmtk: rename btmediatek_data Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 174/186] Bluetooth: btmtk: move btusb_mtk_hci_wmt_sync to btmtk.c Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 175/186] Bluetooth: btmtk: fix urb->setup_packet leak in error paths Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 176/186] net: ag71xx: check error for platform_get_irq Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 177/186] bpf, skmsg: fix verdict sk_data_ready racing with ktls rx Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 178/186] string: add mem_is_zero() helper to check if memory area is all zeros Greg Kroah-Hartman
2026-05-28 19:50 ` [PATCH 6.6 179/186] gpiolib: cdev: use !mem_is_zero() instead of memchr_inv(s, 0, n) Greg Kroah-Hartman
2026-05-28 19:51 ` [PATCH 6.6 180/186] gpio: cdev: check if uAPI v2 config attributes are correctly zeroed Greg Kroah-Hartman
2026-05-28 19:51 ` [PATCH 6.6 181/186] ASoC: cs35l56: Fix flushing of IRQ work in cs35l56_sdw_remove() Greg Kroah-Hartman
2026-05-28 19:51 ` [PATCH 6.6 182/186] net: mana: validate rx_req_idx to prevent out-of-bounds array access Greg Kroah-Hartman
2026-05-28 19:51 ` [PATCH 6.6 183/186] pds_core: add an error code check in pdsc_dl_info_get Greg Kroah-Hartman
2026-05-28 19:51 ` [PATCH 6.6 184/186] pds_core: ensure null-termination for firmware version strings Greg Kroah-Hartman
2026-05-28 19:51 ` [PATCH 6.6 185/186] net: gro: dont merge zcopy skbs Greg Kroah-Hartman
2026-05-28 19:51 ` [PATCH 6.6 186/186] LoongArch: kprobes: Fix handling of fatal unrecoverable recursions Greg Kroah-Hartman
2026-05-29  5:45 ` [PATCH 6.6 000/186] 6.6.142-rc1 review Ron Economos
2026-05-29  6:15 ` Miguel Ojeda
2026-05-29  6:24 ` Francesco Dolcini
2026-05-29  6:33 ` Brett A C Sheffield
2026-05-29  8:29 ` Pavel Machek
2026-05-29 10:20 ` Peter Schneider
2026-05-29 16:24 ` Wentao Guan
2026-05-29 19:10 ` Florian Fainelli
2026-05-29 21:50 ` Mark Brown

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=20260528194932.047584529@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=fw@strlen.de \
    --cc=pablo@netfilter.org \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tristan@talencesecurity.com \
    /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.