patches.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org, netfilter-devel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Florian Westphal <fw@strlen.de>,
	Pablo Neira Ayuso <pablo@netfilter.org>
Subject: [PATCH 5.10 312/509] netfilter: nf_tables: use net_generic infra for transaction data
Date: Tue, 25 Jul 2023 12:44:11 +0200	[thread overview]
Message-ID: <20230725104608.030205940@linuxfoundation.org> (raw)
In-Reply-To: <20230725104553.588743331@linuxfoundation.org>

From: Florian Westphal <fw@strlen.de>

[ Upstream commit 0854db2aaef3fcdd3498a9d299c60adea2aa3dc6 ]

This moves all nf_tables pernet data from struct net to a net_generic
extension, with the exception of the gencursor.

The latter is used in the data path and also outside of the nf_tables
core. All others are only used from the configuration plane.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 include/net/netfilter/nf_tables.h |   10 
 include/net/netns/nftables.h      |    7 
 net/netfilter/nf_tables_api.c     |  382 +++++++++++++++++++++++---------------
 net/netfilter/nf_tables_offload.c |   30 +-
 net/netfilter/nft_chain_filter.c  |   11 -
 net/netfilter/nft_dynset.c        |    6 
 6 files changed, 279 insertions(+), 167 deletions(-)

--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -1535,4 +1535,14 @@ void nf_tables_trans_destroy_flush_work(
 int nf_msecs_to_jiffies64(const struct nlattr *nla, u64 *result);
 __be64 nf_jiffies64_to_msecs(u64 input);
 
+struct nftables_pernet {
+	struct list_head	tables;
+	struct list_head	commit_list;
+	struct list_head	module_list;
+	struct list_head	notify_list;
+	struct mutex		commit_mutex;
+	unsigned int		base_seq;
+	u8			validate_state;
+};
+
 #endif /* _NET_NF_TABLES_H */
--- a/include/net/netns/nftables.h
+++ b/include/net/netns/nftables.h
@@ -5,14 +5,7 @@
 #include <linux/list.h>
 
 struct netns_nftables {
-	struct list_head	tables;
-	struct list_head	commit_list;
-	struct list_head	module_list;
-	struct list_head	notify_list;
-	struct mutex		commit_mutex;
-	unsigned int		base_seq;
 	u8			gencursor;
-	u8			validate_state;
 };
 
 #endif
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -21,10 +21,13 @@
 #include <net/netfilter/nf_tables.h>
 #include <net/netfilter/nf_tables_offload.h>
 #include <net/net_namespace.h>
+#include <net/netns/generic.h>
 #include <net/sock.h>
 
 #define NFT_MODULE_AUTOLOAD_LIMIT (MODULE_NAME_LEN - sizeof("nft-expr-255-"))
 
+unsigned int nf_tables_net_id __read_mostly;
+
 static LIST_HEAD(nf_tables_expressions);
 static LIST_HEAD(nf_tables_objects);
 static LIST_HEAD(nf_tables_flowtables);
@@ -103,7 +106,9 @@ static const u8 nft2audit_op[NFT_MSG_MAX
 
 static void nft_validate_state_update(struct net *net, u8 new_validate_state)
 {
-	switch (net->nft.validate_state) {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
+
+	switch (nft_net->validate_state) {
 	case NFT_VALIDATE_SKIP:
 		WARN_ON_ONCE(new_validate_state == NFT_VALIDATE_DO);
 		break;
@@ -114,7 +119,7 @@ static void nft_validate_state_update(st
 			return;
 	}
 
-	net->nft.validate_state = new_validate_state;
+	nft_net->validate_state = new_validate_state;
 }
 static void nf_tables_trans_destroy_work(struct work_struct *w);
 static DECLARE_WORK(trans_destroy_work, nf_tables_trans_destroy_work);
@@ -170,13 +175,15 @@ static void nft_trans_destroy(struct nft
 
 static void nft_set_trans_bind(const struct nft_ctx *ctx, struct nft_set *set)
 {
+	struct nftables_pernet *nft_net;
 	struct net *net = ctx->net;
 	struct nft_trans *trans;
 
 	if (!nft_set_is_anonymous(set))
 		return;
 
-	list_for_each_entry_reverse(trans, &net->nft.commit_list, list) {
+	nft_net = net_generic(net, nf_tables_net_id);
+	list_for_each_entry_reverse(trans, &nft_net->commit_list, list) {
 		switch (trans->msg_type) {
 		case NFT_MSG_NEWSET:
 			if (nft_trans_set(trans) == set)
@@ -270,6 +277,14 @@ static void nf_tables_unregister_hook(st
 		nf_unregister_net_hook(net, &basechain->ops);
 }
 
+static void nft_trans_commit_list_add_tail(struct net *net, struct nft_trans *trans)
+{
+	struct nftables_pernet *nft_net;
+
+	nft_net = net_generic(net, nf_tables_net_id);
+	list_add_tail(&trans->list, &nft_net->commit_list);
+}
+
 static int nft_trans_table_add(struct nft_ctx *ctx, int msg_type)
 {
 	struct nft_trans *trans;
@@ -281,7 +296,7 @@ static int nft_trans_table_add(struct nf
 	if (msg_type == NFT_MSG_NEWTABLE)
 		nft_activate_next(ctx->net, ctx->table);
 
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 	return 0;
 }
 
@@ -314,7 +329,7 @@ static struct nft_trans *nft_trans_chain
 		}
 	}
 
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 	return trans;
 }
 
@@ -387,7 +402,7 @@ static struct nft_trans *nft_trans_rule_
 			ntohl(nla_get_be32(ctx->nla[NFTA_RULE_ID]));
 	}
 	nft_trans_rule(trans) = rule;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return trans;
 }
@@ -453,7 +468,7 @@ static int nft_trans_set_add(const struc
 		nft_activate_next(ctx->net, set);
 	}
 	nft_trans_set(trans) = set;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return 0;
 }
@@ -485,7 +500,7 @@ static int nft_trans_obj_add(struct nft_
 		nft_activate_next(ctx->net, obj);
 
 	nft_trans_obj(trans) = obj;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return 0;
 }
@@ -519,7 +534,7 @@ static int nft_trans_flowtable_add(struc
 
 	INIT_LIST_HEAD(&nft_trans_flowtable_hooks(trans));
 	nft_trans_flowtable(trans) = flowtable;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return 0;
 }
@@ -547,13 +562,15 @@ static struct nft_table *nft_table_looku
 					  const struct nlattr *nla,
 					  u8 family, u8 genmask)
 {
+	struct nftables_pernet *nft_net;
 	struct nft_table *table;
 
 	if (nla == NULL)
 		return ERR_PTR(-EINVAL);
 
-	list_for_each_entry_rcu(table, &net->nft.tables, list,
-				lockdep_is_held(&net->nft.commit_mutex)) {
+	nft_net = net_generic(net, nf_tables_net_id);
+	list_for_each_entry_rcu(table, &nft_net->tables, list,
+				lockdep_is_held(&nft_net->commit_mutex)) {
 		if (!nla_strcmp(nla, table->name) &&
 		    table->family == family &&
 		    nft_active_genmask(table, genmask))
@@ -567,9 +584,11 @@ static struct nft_table *nft_table_looku
 						   const struct nlattr *nla,
 						   u8 genmask)
 {
+	struct nftables_pernet *nft_net;
 	struct nft_table *table;
 
-	list_for_each_entry(table, &net->nft.tables, list) {
+	nft_net = net_generic(net, nf_tables_net_id);
+	list_for_each_entry(table, &nft_net->tables, list) {
 		if (be64_to_cpu(nla_get_be64(nla)) == table->handle &&
 		    nft_active_genmask(table, genmask))
 			return table;
@@ -621,6 +640,7 @@ struct nft_module_request {
 static int nft_request_module(struct net *net, const char *fmt, ...)
 {
 	char module_name[MODULE_NAME_LEN];
+	struct nftables_pernet *nft_net;
 	struct nft_module_request *req;
 	va_list args;
 	int ret;
@@ -631,7 +651,8 @@ static int nft_request_module(struct net
 	if (ret >= MODULE_NAME_LEN)
 		return 0;
 
-	list_for_each_entry(req, &net->nft.module_list, list) {
+	nft_net = net_generic(net, nf_tables_net_id);
+	list_for_each_entry(req, &nft_net->module_list, list) {
 		if (!strcmp(req->module, module_name)) {
 			if (req->done)
 				return 0;
@@ -647,7 +668,7 @@ static int nft_request_module(struct net
 
 	req->done = false;
 	strlcpy(req->module, module_name, MODULE_NAME_LEN);
-	list_add_tail(&req->list, &net->nft.module_list);
+	list_add_tail(&req->list, &nft_net->module_list);
 
 	return -EAGAIN;
 }
@@ -685,7 +706,9 @@ nf_tables_chain_type_lookup(struct net *
 
 static __be16 nft_base_seq(const struct net *net)
 {
-	return htons(net->nft.base_seq & 0xffff);
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
+
+	return htons(nft_net->base_seq & 0xffff);
 }
 
 static const struct nla_policy nft_table_policy[NFTA_TABLE_MAX + 1] = {
@@ -743,6 +766,7 @@ static void nft_notify_enqueue(struct sk
 
 static void nf_tables_table_notify(const struct nft_ctx *ctx, int event)
 {
+	struct nftables_pernet *nft_net;
 	struct sk_buff *skb;
 	int err;
 
@@ -761,7 +785,8 @@ static void nf_tables_table_notify(const
 		goto err;
 	}
 
-	nft_notify_enqueue(skb, ctx->report, &ctx->net->nft.notify_list);
+	nft_net = net_generic(ctx->net, nf_tables_net_id);
+	nft_notify_enqueue(skb, ctx->report, &nft_net->notify_list);
 	return;
 err:
 	nfnetlink_set_err(ctx->net, ctx->portid, NFNLGRP_NFTABLES, -ENOBUFS);
@@ -771,15 +796,17 @@ static int nf_tables_dump_tables(struct
 				 struct netlink_callback *cb)
 {
 	const struct nfgenmsg *nfmsg = nlmsg_data(cb->nlh);
+	struct nftables_pernet *nft_net;
 	const struct nft_table *table;
 	unsigned int idx = 0, s_idx = cb->args[0];
 	struct net *net = sock_net(skb->sk);
 	int family = nfmsg->nfgen_family;
 
 	rcu_read_lock();
-	cb->seq = net->nft.base_seq;
+	nft_net = net_generic(net, nf_tables_net_id);
+	cb->seq = nft_net->base_seq;
 
-	list_for_each_entry_rcu(table, &net->nft.tables, list) {
+	list_for_each_entry_rcu(table, &nft_net->tables, list) {
 		if (family != NFPROTO_UNSPEC && family != table->family)
 			continue;
 
@@ -954,7 +981,7 @@ static int nf_tables_updtable(struct nft
 		goto err;
 
 	nft_trans_table_update(trans) = true;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 	return 0;
 err:
 	nft_trans_destroy(trans);
@@ -1017,6 +1044,7 @@ static int nf_tables_newtable(struct net
 			      const struct nlattr * const nla[],
 			      struct netlink_ext_ack *extack)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	const struct nfgenmsg *nfmsg = nlmsg_data(nlh);
 	u8 genmask = nft_genmask_next(net);
 	int family = nfmsg->nfgen_family;
@@ -1026,7 +1054,7 @@ static int nf_tables_newtable(struct net
 	u32 flags = 0;
 	int err;
 
-	lockdep_assert_held(&net->nft.commit_mutex);
+	lockdep_assert_held(&nft_net->commit_mutex);
 	attr = nla[NFTA_TABLE_NAME];
 	table = nft_table_lookup(net, attr, family, genmask);
 	if (IS_ERR(table)) {
@@ -1084,7 +1112,7 @@ static int nf_tables_newtable(struct net
 	if (err < 0)
 		goto err_trans;
 
-	list_add_tail_rcu(&table->list, &net->nft.tables);
+	list_add_tail_rcu(&table->list, &nft_net->tables);
 	return 0;
 err_trans:
 	rhltable_destroy(&table->chains_ht);
@@ -1172,11 +1200,12 @@ out:
 
 static int nft_flush(struct nft_ctx *ctx, int family)
 {
+	struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id);
 	struct nft_table *table, *nt;
 	const struct nlattr * const *nla = ctx->nla;
 	int err = 0;
 
-	list_for_each_entry_safe(table, nt, &ctx->net->nft.tables, list) {
+	list_for_each_entry_safe(table, nt, &nft_net->tables, list) {
 		if (family != AF_UNSPEC && table->family != family)
 			continue;
 
@@ -1291,7 +1320,9 @@ nft_chain_lookup_byhandle(const struct n
 static bool lockdep_commit_lock_is_held(const struct net *net)
 {
 #ifdef CONFIG_PROVE_LOCKING
-	return lockdep_is_held(&net->nft.commit_mutex);
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
+
+	return lockdep_is_held(&nft_net->commit_mutex);
 #else
 	return true;
 #endif
@@ -1494,6 +1525,7 @@ nla_put_failure:
 
 static void nf_tables_chain_notify(const struct nft_ctx *ctx, int event)
 {
+	struct nftables_pernet *nft_net;
 	struct sk_buff *skb;
 	int err;
 
@@ -1513,7 +1545,8 @@ static void nf_tables_chain_notify(const
 		goto err;
 	}
 
-	nft_notify_enqueue(skb, ctx->report, &ctx->net->nft.notify_list);
+	nft_net = net_generic(ctx->net, nf_tables_net_id);
+	nft_notify_enqueue(skb, ctx->report, &nft_net->notify_list);
 	return;
 err:
 	nfnetlink_set_err(ctx->net, ctx->portid, NFNLGRP_NFTABLES, -ENOBUFS);
@@ -1528,11 +1561,13 @@ static int nf_tables_dump_chains(struct
 	unsigned int idx = 0, s_idx = cb->args[0];
 	struct net *net = sock_net(skb->sk);
 	int family = nfmsg->nfgen_family;
+	struct nftables_pernet *nft_net;
 
 	rcu_read_lock();
-	cb->seq = net->nft.base_seq;
+	nft_net = net_generic(net, nf_tables_net_id);
+	cb->seq = nft_net->base_seq;
 
-	list_for_each_entry_rcu(table, &net->nft.tables, list) {
+	list_for_each_entry_rcu(table, &nft_net->tables, list) {
 		if (family != NFPROTO_UNSPEC && family != table->family)
 			continue;
 
@@ -1847,11 +1882,12 @@ static int nft_chain_parse_hook(struct n
 				struct nft_chain_hook *hook, u8 family,
 				bool autoload)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nlattr *ha[NFTA_HOOK_MAX + 1];
 	const struct nft_chain_type *type;
 	int err;
 
-	lockdep_assert_held(&net->nft.commit_mutex);
+	lockdep_assert_held(&nft_net->commit_mutex);
 	lockdep_nfnl_nft_mutex_not_held();
 
 	err = nla_parse_nested_deprecated(ha, NFTA_HOOK_MAX,
@@ -2244,6 +2280,7 @@ static int nf_tables_updchain(struct nft
 
 	if (nla[NFTA_CHAIN_HANDLE] &&
 	    nla[NFTA_CHAIN_NAME]) {
+		struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id);
 		struct nft_trans *tmp;
 		char *name;
 
@@ -2253,7 +2290,7 @@ static int nf_tables_updchain(struct nft
 			goto err;
 
 		err = -EEXIST;
-		list_for_each_entry(tmp, &ctx->net->nft.commit_list, list) {
+		list_for_each_entry(tmp, &nft_net->commit_list, list) {
 			if (tmp->msg_type == NFT_MSG_NEWCHAIN &&
 			    tmp->ctx.table == table &&
 			    nft_trans_chain_update(tmp) &&
@@ -2267,7 +2304,7 @@ static int nf_tables_updchain(struct nft
 
 		nft_trans_chain_name(trans) = name;
 	}
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return 0;
 err:
@@ -2280,10 +2317,11 @@ static struct nft_chain *nft_chain_looku
 					       const struct nft_table *table,
 					       const struct nlattr *nla)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	u32 id = ntohl(nla_get_be32(nla));
 	struct nft_trans *trans;
 
-	list_for_each_entry(trans, &net->nft.commit_list, list) {
+	list_for_each_entry(trans, &nft_net->commit_list, list) {
 		struct nft_chain *chain = trans->ctx.chain;
 
 		if (trans->msg_type == NFT_MSG_NEWCHAIN &&
@@ -2299,6 +2337,7 @@ static int nf_tables_newchain(struct net
 			      const struct nlattr * const nla[],
 			      struct netlink_ext_ack *extack)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	const struct nfgenmsg *nfmsg = nlmsg_data(nlh);
 	u8 genmask = nft_genmask_next(net);
 	int family = nfmsg->nfgen_family;
@@ -2310,7 +2349,7 @@ static int nf_tables_newchain(struct net
 	u64 handle = 0;
 	u32 flags = 0;
 
-	lockdep_assert_held(&net->nft.commit_mutex);
+	lockdep_assert_held(&nft_net->commit_mutex);
 
 	table = nft_table_lookup(net, nla[NFTA_CHAIN_TABLE], family, genmask);
 	if (IS_ERR(table)) {
@@ -2848,6 +2887,7 @@ nla_put_failure:
 static void nf_tables_rule_notify(const struct nft_ctx *ctx,
 				  const struct nft_rule *rule, int event)
 {
+	struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id);
 	struct sk_buff *skb;
 	int err;
 
@@ -2867,7 +2907,7 @@ static void nf_tables_rule_notify(const
 		goto err;
 	}
 
-	nft_notify_enqueue(skb, ctx->report, &ctx->net->nft.notify_list);
+	nft_notify_enqueue(skb, ctx->report, &nft_net->notify_list);
 	return;
 err:
 	nfnetlink_set_err(ctx->net, ctx->portid, NFNLGRP_NFTABLES, -ENOBUFS);
@@ -2925,11 +2965,13 @@ static int nf_tables_dump_rules(struct s
 	unsigned int idx = 0;
 	struct net *net = sock_net(skb->sk);
 	int family = nfmsg->nfgen_family;
+	struct nftables_pernet *nft_net;
 
 	rcu_read_lock();
-	cb->seq = net->nft.base_seq;
+	nft_net = net_generic(net, nf_tables_net_id);
+	cb->seq = nft_net->base_seq;
 
-	list_for_each_entry_rcu(table, &net->nft.tables, list) {
+	list_for_each_entry_rcu(table, &nft_net->tables, list) {
 		if (family != NFPROTO_UNSPEC && family != table->family)
 			continue;
 
@@ -3161,6 +3203,7 @@ static int nf_tables_newrule(struct net
 			     const struct nlattr * const nla[],
 			     struct netlink_ext_ack *extack)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	const struct nfgenmsg *nfmsg = nlmsg_data(nlh);
 	u8 genmask = nft_genmask_next(net);
 	struct nft_expr_info *info = NULL;
@@ -3178,7 +3221,7 @@ static int nf_tables_newrule(struct net
 	int err, rem;
 	u64 handle, pos_handle;
 
-	lockdep_assert_held(&net->nft.commit_mutex);
+	lockdep_assert_held(&nft_net->commit_mutex);
 
 	table = nft_table_lookup(net, nla[NFTA_RULE_TABLE], family, genmask);
 	if (IS_ERR(table)) {
@@ -3351,7 +3394,7 @@ static int nf_tables_newrule(struct net
 	kvfree(info);
 	chain->use++;
 
-	if (net->nft.validate_state == NFT_VALIDATE_DO)
+	if (nft_net->validate_state == NFT_VALIDATE_DO)
 		return nft_table_validate(net, table);
 
 	if (chain->flags & NFT_CHAIN_HW_OFFLOAD) {
@@ -3381,10 +3424,11 @@ static struct nft_rule *nft_rule_lookup_
 					     const struct nft_chain *chain,
 					     const struct nlattr *nla)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	u32 id = ntohl(nla_get_be32(nla));
 	struct nft_trans *trans;
 
-	list_for_each_entry(trans, &net->nft.commit_list, list) {
+	list_for_each_entry(trans, &nft_net->commit_list, list) {
 		struct nft_rule *rule = nft_trans_rule(trans);
 
 		if (trans->msg_type == NFT_MSG_NEWRULE &&
@@ -3497,13 +3541,14 @@ nft_select_set_ops(const struct nft_ctx
 		   const struct nft_set_desc *desc,
 		   enum nft_set_policies policy)
 {
+	struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id);
 	const struct nft_set_ops *ops, *bops;
 	struct nft_set_estimate est, best;
 	const struct nft_set_type *type;
 	u32 flags = 0;
 	int i;
 
-	lockdep_assert_held(&ctx->net->nft.commit_mutex);
+	lockdep_assert_held(&nft_net->commit_mutex);
 	lockdep_nfnl_nft_mutex_not_held();
 
 	if (nla[NFTA_SET_FLAGS] != NULL)
@@ -3641,10 +3686,11 @@ static struct nft_set *nft_set_lookup_by
 					   const struct nft_table *table,
 					   const struct nlattr *nla, u8 genmask)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_trans *trans;
 	u32 id = ntohl(nla_get_be32(nla));
 
-	list_for_each_entry(trans, &net->nft.commit_list, list) {
+	list_for_each_entry(trans, &nft_net->commit_list, list) {
 		if (trans->msg_type == NFT_MSG_NEWSET) {
 			struct nft_set *set = nft_trans_set(trans);
 
@@ -3867,6 +3913,7 @@ static void nf_tables_set_notify(const s
 				 const struct nft_set *set, int event,
 			         gfp_t gfp_flags)
 {
+	struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id);
 	struct sk_buff *skb;
 	u32 portid = ctx->portid;
 	int err;
@@ -3885,7 +3932,7 @@ static void nf_tables_set_notify(const s
 		goto err;
 	}
 
-	nft_notify_enqueue(skb, ctx->report, &ctx->net->nft.notify_list);
+	nft_notify_enqueue(skb, ctx->report, &nft_net->notify_list);
 	return;
 err:
 	nfnetlink_set_err(ctx->net, portid, NFNLGRP_NFTABLES, -ENOBUFS);
@@ -3898,14 +3945,16 @@ static int nf_tables_dump_sets(struct sk
 	struct nft_table *table, *cur_table = (struct nft_table *)cb->args[2];
 	struct net *net = sock_net(skb->sk);
 	struct nft_ctx *ctx = cb->data, ctx_set;
+	struct nftables_pernet *nft_net;
 
 	if (cb->args[1])
 		return skb->len;
 
 	rcu_read_lock();
-	cb->seq = net->nft.base_seq;
+	nft_net = net_generic(net, nf_tables_net_id);
+	cb->seq = nft_net->base_seq;
 
-	list_for_each_entry_rcu(table, &net->nft.tables, list) {
+	list_for_each_entry_rcu(table, &nft_net->tables, list) {
 		if (ctx->family != NFPROTO_UNSPEC &&
 		    ctx->family != table->family)
 			continue;
@@ -4706,6 +4755,7 @@ static int nf_tables_dump_set(struct sk_
 {
 	struct nft_set_dump_ctx *dump_ctx = cb->data;
 	struct net *net = sock_net(skb->sk);
+	struct nftables_pernet *nft_net;
 	struct nft_table *table;
 	struct nft_set *set;
 	struct nft_set_dump_args args;
@@ -4716,7 +4766,8 @@ static int nf_tables_dump_set(struct sk_
 	int event;
 
 	rcu_read_lock();
-	list_for_each_entry_rcu(table, &net->nft.tables, list) {
+	nft_net = net_generic(net, nf_tables_net_id);
+	list_for_each_entry_rcu(table, &nft_net->tables, list) {
 		if (dump_ctx->ctx.family != NFPROTO_UNSPEC &&
 		    dump_ctx->ctx.family != table->family)
 			continue;
@@ -4995,6 +5046,7 @@ static void nf_tables_setelem_notify(con
 				     const struct nft_set_elem *elem,
 				     int event, u16 flags)
 {
+	struct nftables_pernet *nft_net;
 	struct net *net = ctx->net;
 	u32 portid = ctx->portid;
 	struct sk_buff *skb;
@@ -5014,7 +5066,8 @@ static void nf_tables_setelem_notify(con
 		goto err;
 	}
 
-	nft_notify_enqueue(skb, ctx->report, &ctx->net->nft.notify_list);
+	nft_net = net_generic(net, nf_tables_net_id);
+	nft_notify_enqueue(skb, ctx->report, &nft_net->notify_list);
 	return;
 err:
 	nfnetlink_set_err(net, portid, NFNLGRP_NFTABLES, -ENOBUFS);
@@ -5410,7 +5463,7 @@ static int nft_add_set_elem(struct nft_c
 	}
 
 	nft_trans_elem(trans) = elem;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 	return 0;
 
 err_set_full:
@@ -5441,6 +5494,7 @@ static int nf_tables_newsetelem(struct n
 				const struct nlattr * const nla[],
 				struct netlink_ext_ack *extack)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	u8 genmask = nft_genmask_next(net);
 	const struct nlattr *attr;
 	struct nft_set *set;
@@ -5470,7 +5524,7 @@ static int nf_tables_newsetelem(struct n
 			return err;
 	}
 
-	if (net->nft.validate_state == NFT_VALIDATE_DO)
+	if (nft_net->validate_state == NFT_VALIDATE_DO)
 		return nft_table_validate(net, ctx.table);
 
 	return 0;
@@ -5606,7 +5660,7 @@ static int nft_del_setelem(struct nft_ct
 	nft_set_elem_deactivate(ctx->net, set, &elem);
 
 	nft_trans_elem(trans) = elem;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 	return 0;
 
 fail_ops:
@@ -5640,7 +5694,7 @@ static int nft_flush_set(const struct nf
 	nft_set_elem_deactivate(ctx->net, set, elem);
 	nft_trans_elem_set(trans) = set;
 	nft_trans_elem(trans) = *elem;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return 0;
 err1:
@@ -5939,7 +5993,7 @@ static int nf_tables_updobj(const struct
 	nft_trans_obj(trans) = obj;
 	nft_trans_obj_update(trans) = true;
 	nft_trans_obj_newobj(trans) = newobj;
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return 0;
 
@@ -6102,6 +6156,7 @@ static int nf_tables_dump_obj(struct sk_
 	struct nft_obj_filter *filter = cb->data;
 	struct net *net = sock_net(skb->sk);
 	int family = nfmsg->nfgen_family;
+	struct nftables_pernet *nft_net;
 	struct nft_object *obj;
 	bool reset = false;
 
@@ -6109,9 +6164,10 @@ static int nf_tables_dump_obj(struct sk_
 		reset = true;
 
 	rcu_read_lock();
-	cb->seq = net->nft.base_seq;
+	nft_net = net_generic(net, nf_tables_net_id);
+	cb->seq = nft_net->base_seq;
 
-	list_for_each_entry_rcu(table, &net->nft.tables, list) {
+	list_for_each_entry_rcu(table, &nft_net->tables, list) {
 		if (family != NFPROTO_UNSPEC && family != table->family)
 			continue;
 
@@ -6134,7 +6190,7 @@ static int nf_tables_dump_obj(struct sk_
 				char *buf = kasprintf(GFP_ATOMIC,
 						      "%s:%u",
 						      table->name,
-						      net->nft.base_seq);
+						      nft_net->base_seq);
 
 				audit_log_nfcfg(buf,
 						family,
@@ -6255,8 +6311,11 @@ static int nf_tables_getobj(struct net *
 		reset = true;
 
 	if (reset) {
-		char *buf = kasprintf(GFP_ATOMIC, "%s:%u",
-				      table->name, net->nft.base_seq);
+		const struct nftables_pernet *nft_net;
+		char *buf;
+
+		nft_net = net_generic(net, nf_tables_net_id);
+		buf = kasprintf(GFP_ATOMIC, "%s:%u", table->name, nft_net->base_seq);
 
 		audit_log_nfcfg(buf,
 				family,
@@ -6341,10 +6400,11 @@ void nft_obj_notify(struct net *net, con
 		    struct nft_object *obj, u32 portid, u32 seq, int event,
 		    int family, int report, gfp_t gfp)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct sk_buff *skb;
 	int err;
 	char *buf = kasprintf(gfp, "%s:%u",
-			      table->name, net->nft.base_seq);
+			      table->name, nft_net->base_seq);
 
 	audit_log_nfcfg(buf,
 			family,
@@ -6370,7 +6430,7 @@ void nft_obj_notify(struct net *net, con
 		goto err;
 	}
 
-	nft_notify_enqueue(skb, report, &net->nft.notify_list);
+	nft_notify_enqueue(skb, report, &nft_net->notify_list);
 	return;
 err:
 	nfnetlink_set_err(net, portid, NFNLGRP_NFTABLES, -ENOBUFS);
@@ -6706,7 +6766,7 @@ static int nft_flowtable_update(struct n
 	INIT_LIST_HEAD(&nft_trans_flowtable_hooks(trans));
 	list_splice(&flowtable_hook.list, &nft_trans_flowtable_hooks(trans));
 
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return 0;
 
@@ -6896,7 +6956,7 @@ static int nft_delflowtable_hook(struct
 	list_splice(&flowtable_del_list, &nft_trans_flowtable_hooks(trans));
 	nft_flowtable_hook_release(&flowtable_hook);
 
-	list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+	nft_trans_commit_list_add_tail(ctx->net, trans);
 
 	return 0;
 
@@ -7022,12 +7082,14 @@ static int nf_tables_dump_flowtable(stru
 	struct net *net = sock_net(skb->sk);
 	int family = nfmsg->nfgen_family;
 	struct nft_flowtable *flowtable;
+	struct nftables_pernet *nft_net;
 	const struct nft_table *table;
 
 	rcu_read_lock();
-	cb->seq = net->nft.base_seq;
+	nft_net = net_generic(net, nf_tables_net_id);
+	cb->seq = nft_net->base_seq;
 
-	list_for_each_entry_rcu(table, &net->nft.tables, list) {
+	list_for_each_entry_rcu(table, &nft_net->tables, list) {
 		if (family != NFPROTO_UNSPEC && family != table->family)
 			continue;
 
@@ -7162,6 +7224,7 @@ static void nf_tables_flowtable_notify(s
 				       struct list_head *hook_list,
 				       int event)
 {
+	struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id);
 	struct sk_buff *skb;
 	int err;
 
@@ -7181,7 +7244,7 @@ static void nf_tables_flowtable_notify(s
 		goto err;
 	}
 
-	nft_notify_enqueue(skb, ctx->report, &ctx->net->nft.notify_list);
+	nft_notify_enqueue(skb, ctx->report, &nft_net->notify_list);
 	return;
 err:
 	nfnetlink_set_err(ctx->net, ctx->portid, NFNLGRP_NFTABLES, -ENOBUFS);
@@ -7206,6 +7269,7 @@ static void nf_tables_flowtable_destroy(
 static int nf_tables_fill_gen_info(struct sk_buff *skb, struct net *net,
 				   u32 portid, u32 seq)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nlmsghdr *nlh;
 	char buf[TASK_COMM_LEN];
 	int event = nfnl_msg_type(NFNL_SUBSYS_NFTABLES, NFT_MSG_NEWGEN);
@@ -7215,7 +7279,7 @@ static int nf_tables_fill_gen_info(struc
 	if (!nlh)
 		goto nla_put_failure;
 
-	if (nla_put_be32(skb, NFTA_GEN_ID, htonl(net->nft.base_seq)) ||
+	if (nla_put_be32(skb, NFTA_GEN_ID, htonl(nft_net->base_seq)) ||
 	    nla_put_be32(skb, NFTA_GEN_PROC_PID, htonl(task_pid_nr(current))) ||
 	    nla_put_string(skb, NFTA_GEN_PROC_NAME, get_task_comm(buf, current)))
 		goto nla_put_failure;
@@ -7250,6 +7314,7 @@ static int nf_tables_flowtable_event(str
 {
 	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
 	struct nft_flowtable *flowtable;
+	struct nftables_pernet *nft_net;
 	struct nft_table *table;
 	struct net *net;
 
@@ -7257,13 +7322,14 @@ static int nf_tables_flowtable_event(str
 		return 0;
 
 	net = dev_net(dev);
-	mutex_lock(&net->nft.commit_mutex);
-	list_for_each_entry(table, &net->nft.tables, list) {
+	nft_net = net_generic(net, nf_tables_net_id);
+	mutex_lock(&nft_net->commit_mutex);
+	list_for_each_entry(table, &nft_net->tables, list) {
 		list_for_each_entry(flowtable, &table->flowtables, list) {
 			nft_flowtable_event(event, dev, flowtable);
 		}
 	}
-	mutex_unlock(&net->nft.commit_mutex);
+	mutex_unlock(&nft_net->commit_mutex);
 
 	return NOTIFY_DONE;
 }
@@ -7444,16 +7510,17 @@ static const struct nfnl_callback nf_tab
 
 static int nf_tables_validate(struct net *net)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_table *table;
 
-	switch (net->nft.validate_state) {
+	switch (nft_net->validate_state) {
 	case NFT_VALIDATE_SKIP:
 		break;
 	case NFT_VALIDATE_NEED:
 		nft_validate_state_update(net, NFT_VALIDATE_DO);
 		fallthrough;
 	case NFT_VALIDATE_DO:
-		list_for_each_entry(table, &net->nft.tables, list) {
+		list_for_each_entry(table, &nft_net->tables, list) {
 			if (nft_table_validate(net, table) < 0)
 				return -EAGAIN;
 		}
@@ -7630,9 +7697,10 @@ static int nf_tables_commit_chain_prepar
 
 static void nf_tables_commit_chain_prepare_cancel(struct net *net)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_trans *trans, *next;
 
-	list_for_each_entry_safe(trans, next, &net->nft.commit_list, list) {
+	list_for_each_entry_safe(trans, next, &nft_net->commit_list, list) {
 		struct nft_chain *chain = trans->ctx.chain;
 
 		if (trans->msg_type == NFT_MSG_NEWRULE ||
@@ -7730,10 +7798,11 @@ void nft_chain_del(struct nft_chain *cha
 
 static void nf_tables_module_autoload_cleanup(struct net *net)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_module_request *req, *next;
 
-	WARN_ON_ONCE(!list_empty(&net->nft.commit_list));
-	list_for_each_entry_safe(req, next, &net->nft.module_list, list) {
+	WARN_ON_ONCE(!list_empty(&nft_net->commit_list));
+	list_for_each_entry_safe(req, next, &nft_net->module_list, list) {
 		WARN_ON_ONCE(!req->done);
 		list_del(&req->list);
 		kfree(req);
@@ -7742,6 +7811,7 @@ static void nf_tables_module_autoload_cl
 
 static void nf_tables_commit_release(struct net *net)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_trans *trans;
 
 	/* all side effects have to be made visible.
@@ -7751,35 +7821,36 @@ static void nf_tables_commit_release(str
 	 * Memory reclaim happens asynchronously from work queue
 	 * to prevent expensive synchronize_rcu() in commit phase.
 	 */
-	if (list_empty(&net->nft.commit_list)) {
+	if (list_empty(&nft_net->commit_list)) {
 		nf_tables_module_autoload_cleanup(net);
-		mutex_unlock(&net->nft.commit_mutex);
+		mutex_unlock(&nft_net->commit_mutex);
 		return;
 	}
 
-	trans = list_last_entry(&net->nft.commit_list,
+	trans = list_last_entry(&nft_net->commit_list,
 				struct nft_trans, list);
 	get_net(trans->ctx.net);
 	WARN_ON_ONCE(trans->put_net);
 
 	trans->put_net = true;
 	spin_lock(&nf_tables_destroy_list_lock);
-	list_splice_tail_init(&net->nft.commit_list, &nf_tables_destroy_list);
+	list_splice_tail_init(&nft_net->commit_list, &nf_tables_destroy_list);
 	spin_unlock(&nf_tables_destroy_list_lock);
 
 	nf_tables_module_autoload_cleanup(net);
 	schedule_work(&trans_destroy_work);
 
-	mutex_unlock(&net->nft.commit_mutex);
+	mutex_unlock(&nft_net->commit_mutex);
 }
 
 static void nft_commit_notify(struct net *net, u32 portid)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct sk_buff *batch_skb = NULL, *nskb, *skb;
 	unsigned char *data;
 	int len;
 
-	list_for_each_entry_safe(skb, nskb, &net->nft.notify_list, list) {
+	list_for_each_entry_safe(skb, nskb, &nft_net->notify_list, list) {
 		if (!batch_skb) {
 new_batch:
 			batch_skb = skb;
@@ -7805,7 +7876,7 @@ new_batch:
 			       NFT_CB(batch_skb).report, GFP_KERNEL);
 	}
 
-	WARN_ON_ONCE(!list_empty(&net->nft.notify_list));
+	WARN_ON_ONCE(!list_empty(&nft_net->notify_list));
 }
 
 static int nf_tables_commit_audit_alloc(struct list_head *adl,
@@ -7871,6 +7942,7 @@ static void nf_tables_commit_audit_log(s
 
 static int nf_tables_commit(struct net *net, struct sk_buff *skb)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_trans *trans, *next;
 	struct nft_trans_elem *te;
 	struct nft_chain *chain;
@@ -7878,8 +7950,8 @@ static int nf_tables_commit(struct net *
 	LIST_HEAD(adl);
 	int err;
 
-	if (list_empty(&net->nft.commit_list)) {
-		mutex_unlock(&net->nft.commit_mutex);
+	if (list_empty(&nft_net->commit_list)) {
+		mutex_unlock(&nft_net->commit_mutex);
 		return 0;
 	}
 
@@ -7892,7 +7964,7 @@ static int nf_tables_commit(struct net *
 		return err;
 
 	/* 1.  Allocate space for next generation rules_gen_X[] */
-	list_for_each_entry_safe(trans, next, &net->nft.commit_list, list) {
+	list_for_each_entry_safe(trans, next, &nft_net->commit_list, list) {
 		int ret;
 
 		ret = nf_tables_commit_audit_alloc(&adl, trans->ctx.table);
@@ -7915,7 +7987,7 @@ static int nf_tables_commit(struct net *
 	}
 
 	/* step 2.  Make rules_gen_X visible to packet path */
-	list_for_each_entry(table, &net->nft.tables, list) {
+	list_for_each_entry(table, &nft_net->tables, list) {
 		list_for_each_entry(chain, &table->chains, list)
 			nf_tables_commit_chain(net, chain);
 	}
@@ -7924,12 +7996,13 @@ static int nf_tables_commit(struct net *
 	 * Bump generation counter, invalidate any dump in progress.
 	 * Cannot fail after this point.
 	 */
-	while (++net->nft.base_seq == 0);
+	while (++nft_net->base_seq == 0)
+		;
 
 	/* step 3. Start new generation, rules_gen_X now in use. */
 	net->nft.gencursor = nft_gencursor_next(net);
 
-	list_for_each_entry_safe(trans, next, &net->nft.commit_list, list) {
+	list_for_each_entry_safe(trans, next, &nft_net->commit_list, list) {
 		nf_tables_commit_audit_collect(&adl, trans->ctx.table,
 					       trans->msg_type);
 		switch (trans->msg_type) {
@@ -8089,7 +8162,7 @@ static int nf_tables_commit(struct net *
 
 	nft_commit_notify(net, NETLINK_CB(skb).portid);
 	nf_tables_gen_notify(net, skb, NFT_MSG_NEWGEN);
-	nf_tables_commit_audit_log(&adl, net->nft.base_seq);
+	nf_tables_commit_audit_log(&adl, nft_net->base_seq);
 	nf_tables_commit_release(net);
 
 	return 0;
@@ -8097,17 +8170,18 @@ static int nf_tables_commit(struct net *
 
 static void nf_tables_module_autoload(struct net *net)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_module_request *req, *next;
 	LIST_HEAD(module_list);
 
-	list_splice_init(&net->nft.module_list, &module_list);
-	mutex_unlock(&net->nft.commit_mutex);
+	list_splice_init(&nft_net->module_list, &module_list);
+	mutex_unlock(&nft_net->commit_mutex);
 	list_for_each_entry_safe(req, next, &module_list, list) {
 		request_module("%s", req->module);
 		req->done = true;
 	}
-	mutex_lock(&net->nft.commit_mutex);
-	list_splice(&module_list, &net->nft.module_list);
+	mutex_lock(&nft_net->commit_mutex);
+	list_splice(&module_list, &nft_net->module_list);
 }
 
 static void nf_tables_abort_release(struct nft_trans *trans)
@@ -8144,6 +8218,7 @@ static void nf_tables_abort_release(stru
 
 static int __nf_tables_abort(struct net *net, enum nfnl_abort_action action)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_trans *trans, *next;
 	struct nft_trans_elem *te;
 
@@ -8151,7 +8226,7 @@ static int __nf_tables_abort(struct net
 	    nf_tables_validate(net) < 0)
 		return -EAGAIN;
 
-	list_for_each_entry_safe_reverse(trans, next, &net->nft.commit_list,
+	list_for_each_entry_safe_reverse(trans, next, &nft_net->commit_list,
 					 list) {
 		switch (trans->msg_type) {
 		case NFT_MSG_NEWTABLE:
@@ -8277,7 +8352,7 @@ static int __nf_tables_abort(struct net
 	synchronize_rcu();
 
 	list_for_each_entry_safe_reverse(trans, next,
-					 &net->nft.commit_list, list) {
+					 &nft_net->commit_list, list) {
 		list_del(&trans->list);
 		nf_tables_abort_release(trans);
 	}
@@ -8293,22 +8368,24 @@ static int __nf_tables_abort(struct net
 static int nf_tables_abort(struct net *net, struct sk_buff *skb,
 			   enum nfnl_abort_action action)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	int ret = __nf_tables_abort(net, action);
 
-	mutex_unlock(&net->nft.commit_mutex);
+	mutex_unlock(&nft_net->commit_mutex);
 
 	return ret;
 }
 
 static bool nf_tables_valid_genid(struct net *net, u32 genid)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	bool genid_ok;
 
-	mutex_lock(&net->nft.commit_mutex);
+	mutex_lock(&nft_net->commit_mutex);
 
-	genid_ok = genid == 0 || net->nft.base_seq == genid;
+	genid_ok = genid == 0 || nft_net->base_seq == genid;
 	if (!genid_ok)
-		mutex_unlock(&net->nft.commit_mutex);
+		mutex_unlock(&nft_net->commit_mutex);
 
 	/* else, commit mutex has to be released by commit or abort function */
 	return genid_ok;
@@ -8909,19 +8986,19 @@ EXPORT_SYMBOL_GPL(__nft_release_basechai
 
 static void __nft_release_hooks(struct net *net)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_table *table;
 	struct nft_chain *chain;
 
-	list_for_each_entry(table, &net->nft.tables, list) {
+	list_for_each_entry(table, &nft_net->tables, list) {
 		list_for_each_entry(chain, &table->chains, list)
 			nf_tables_unregister_hook(net, table, chain);
 	}
 }
 
-static void __nft_release_tables(struct net *net)
+static void __nft_release_table(struct net *net, struct nft_table *table)
 {
 	struct nft_flowtable *flowtable, *nf;
-	struct nft_table *table, *nt;
 	struct nft_chain *chain, *nc;
 	struct nft_object *obj, *ne;
 	struct nft_rule *rule, *nr;
@@ -8931,79 +9008,94 @@ static void __nft_release_tables(struct
 		.family	= NFPROTO_NETDEV,
 	};
 
-	list_for_each_entry_safe(table, nt, &net->nft.tables, list) {
-		ctx.family = table->family;
-		ctx.table = table;
-		list_for_each_entry(chain, &table->chains, list) {
-			ctx.chain = chain;
-			list_for_each_entry_safe(rule, nr, &chain->rules, list) {
-				list_del(&rule->list);
-				chain->use--;
-				nf_tables_rule_release(&ctx, rule);
-			}
-		}
-		list_for_each_entry_safe(flowtable, nf, &table->flowtables, list) {
-			list_del(&flowtable->list);
-			table->use--;
-			nf_tables_flowtable_destroy(flowtable);
-		}
-		list_for_each_entry_safe(set, ns, &table->sets, list) {
-			list_del(&set->list);
-			table->use--;
-			nft_set_destroy(&ctx, set);
-		}
-		list_for_each_entry_safe(obj, ne, &table->objects, list) {
-			nft_obj_del(obj);
-			table->use--;
-			nft_obj_destroy(&ctx, obj);
-		}
-		list_for_each_entry_safe(chain, nc, &table->chains, list) {
-			ctx.chain = chain;
-			nft_chain_del(chain);
-			table->use--;
-			nf_tables_chain_destroy(&ctx);
+	ctx.family = table->family;
+	ctx.table = table;
+	list_for_each_entry(chain, &table->chains, list) {
+		ctx.chain = chain;
+		list_for_each_entry_safe(rule, nr, &chain->rules, list) {
+			list_del(&rule->list);
+			chain->use--;
+			nf_tables_rule_release(&ctx, rule);
 		}
-		list_del(&table->list);
-		nf_tables_table_destroy(&ctx);
 	}
+	list_for_each_entry_safe(flowtable, nf, &table->flowtables, list) {
+		list_del(&flowtable->list);
+		table->use--;
+		nf_tables_flowtable_destroy(flowtable);
+	}
+	list_for_each_entry_safe(set, ns, &table->sets, list) {
+		list_del(&set->list);
+		table->use--;
+		nft_set_destroy(&ctx, set);
+	}
+	list_for_each_entry_safe(obj, ne, &table->objects, list) {
+		nft_obj_del(obj);
+		table->use--;
+		nft_obj_destroy(&ctx, obj);
+	}
+	list_for_each_entry_safe(chain, nc, &table->chains, list) {
+		ctx.chain = chain;
+		nft_chain_del(chain);
+		table->use--;
+		nf_tables_chain_destroy(&ctx);
+	}
+	list_del(&table->list);
+	nf_tables_table_destroy(&ctx);
+}
+
+static void __nft_release_tables(struct net *net)
+{
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
+	struct nft_table *table, *nt;
+
+	list_for_each_entry_safe(table, nt, &nft_net->tables, list)
+		__nft_release_table(net, table);
 }
 
 static int __net_init nf_tables_init_net(struct net *net)
 {
-	INIT_LIST_HEAD(&net->nft.tables);
-	INIT_LIST_HEAD(&net->nft.commit_list);
-	INIT_LIST_HEAD(&net->nft.module_list);
-	INIT_LIST_HEAD(&net->nft.notify_list);
-	mutex_init(&net->nft.commit_mutex);
-	net->nft.base_seq = 1;
-	net->nft.validate_state = NFT_VALIDATE_SKIP;
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
+
+	INIT_LIST_HEAD(&nft_net->tables);
+	INIT_LIST_HEAD(&nft_net->commit_list);
+	INIT_LIST_HEAD(&nft_net->module_list);
+	INIT_LIST_HEAD(&nft_net->notify_list);
+	mutex_init(&nft_net->commit_mutex);
+	nft_net->base_seq = 1;
+	nft_net->validate_state = NFT_VALIDATE_SKIP;
 
 	return 0;
 }
 
 static void __net_exit nf_tables_pre_exit_net(struct net *net)
 {
-	mutex_lock(&net->nft.commit_mutex);
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
+
+	mutex_lock(&nft_net->commit_mutex);
 	__nft_release_hooks(net);
-	mutex_unlock(&net->nft.commit_mutex);
+	mutex_unlock(&nft_net->commit_mutex);
 }
 
 static void __net_exit nf_tables_exit_net(struct net *net)
 {
-	mutex_lock(&net->nft.commit_mutex);
-	if (!list_empty(&net->nft.commit_list))
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
+
+	mutex_lock(&nft_net->commit_mutex);
+	if (!list_empty(&nft_net->commit_list))
 		__nf_tables_abort(net, NFNL_ABORT_NONE);
 	__nft_release_tables(net);
-	mutex_unlock(&net->nft.commit_mutex);
-	WARN_ON_ONCE(!list_empty(&net->nft.tables));
-	WARN_ON_ONCE(!list_empty(&net->nft.module_list));
-	WARN_ON_ONCE(!list_empty(&net->nft.notify_list));
+	mutex_unlock(&nft_net->commit_mutex);
+	WARN_ON_ONCE(!list_empty(&nft_net->tables));
+	WARN_ON_ONCE(!list_empty(&nft_net->module_list));
+	WARN_ON_ONCE(!list_empty(&nft_net->notify_list));
 }
 
 static struct pernet_operations nf_tables_net_ops = {
 	.init		= nf_tables_init_net,
 	.pre_exit	= nf_tables_pre_exit_net,
 	.exit		= nf_tables_exit_net,
+	.id		= &nf_tables_net_id,
+	.size		= sizeof(struct nftables_pernet),
 };
 
 static int __init nf_tables_module_init(void)
--- a/net/netfilter/nf_tables_offload.c
+++ b/net/netfilter/nf_tables_offload.c
@@ -7,6 +7,8 @@
 #include <net/netfilter/nf_tables_offload.h>
 #include <net/pkt_cls.h>
 
+extern unsigned int nf_tables_net_id;
+
 static struct nft_flow_rule *nft_flow_rule_alloc(int num_actions)
 {
 	struct nft_flow_rule *flow;
@@ -371,16 +373,18 @@ static void nft_indr_block_cleanup(struc
 	struct nft_base_chain *basechain = block_cb->indr.data;
 	struct net_device *dev = block_cb->indr.dev;
 	struct netlink_ext_ack extack = {};
+	struct nftables_pernet *nft_net;
 	struct net *net = dev_net(dev);
 	struct flow_block_offload bo;
 
 	nft_flow_block_offload_init(&bo, dev_net(dev), FLOW_BLOCK_UNBIND,
 				    basechain, &extack);
-	mutex_lock(&net->nft.commit_mutex);
+	nft_net = net_generic(net, nf_tables_net_id);
+	mutex_lock(&nft_net->commit_mutex);
 	list_del(&block_cb->driver_list);
 	list_move(&block_cb->list, &bo.cb_list);
 	nft_flow_offload_unbind(&bo, basechain);
-	mutex_unlock(&net->nft.commit_mutex);
+	mutex_unlock(&nft_net->commit_mutex);
 }
 
 static int nft_indr_block_offload_cmd(struct nft_base_chain *basechain,
@@ -476,9 +480,10 @@ static int nft_flow_offload_chain(struct
 static void nft_flow_rule_offload_abort(struct net *net,
 					struct nft_trans *trans)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	int err = 0;
 
-	list_for_each_entry_continue_reverse(trans, &net->nft.commit_list, list) {
+	list_for_each_entry_continue_reverse(trans, &nft_net->commit_list, list) {
 		if (trans->ctx.family != NFPROTO_NETDEV)
 			continue;
 
@@ -524,11 +529,12 @@ static void nft_flow_rule_offload_abort(
 
 int nft_flow_rule_offload_commit(struct net *net)
 {
+	struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
 	struct nft_trans *trans;
 	int err = 0;
 	u8 policy;
 
-	list_for_each_entry(trans, &net->nft.commit_list, list) {
+	list_for_each_entry(trans, &nft_net->commit_list, list) {
 		if (trans->ctx.family != NFPROTO_NETDEV)
 			continue;
 
@@ -580,7 +586,7 @@ int nft_flow_rule_offload_commit(struct
 		}
 	}
 
-	list_for_each_entry(trans, &net->nft.commit_list, list) {
+	list_for_each_entry(trans, &nft_net->commit_list, list) {
 		if (trans->ctx.family != NFPROTO_NETDEV)
 			continue;
 
@@ -600,15 +606,15 @@ int nft_flow_rule_offload_commit(struct
 	return err;
 }
 
-static struct nft_chain *__nft_offload_get_chain(struct net_device *dev)
+static struct nft_chain *__nft_offload_get_chain(const struct nftables_pernet *nft_net,
+						 struct net_device *dev)
 {
 	struct nft_base_chain *basechain;
-	struct net *net = dev_net(dev);
 	struct nft_hook *hook, *found;
 	const struct nft_table *table;
 	struct nft_chain *chain;
 
-	list_for_each_entry(table, &net->nft.tables, list) {
+	list_for_each_entry(table, &nft_net->tables, list) {
 		if (table->family != NFPROTO_NETDEV)
 			continue;
 
@@ -640,19 +646,21 @@ static int nft_offload_netdev_event(stru
 				    unsigned long event, void *ptr)
 {
 	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
+	struct nftables_pernet *nft_net;
 	struct net *net = dev_net(dev);
 	struct nft_chain *chain;
 
 	if (event != NETDEV_UNREGISTER)
 		return NOTIFY_DONE;
 
-	mutex_lock(&net->nft.commit_mutex);
-	chain = __nft_offload_get_chain(dev);
+	nft_net = net_generic(net, nf_tables_net_id);
+	mutex_lock(&nft_net->commit_mutex);
+	chain = __nft_offload_get_chain(nft_net, dev);
 	if (chain)
 		nft_flow_block_chain(nft_base_chain(chain), dev,
 				     FLOW_BLOCK_UNBIND);
 
-	mutex_unlock(&net->nft.commit_mutex);
+	mutex_unlock(&nft_net->commit_mutex);
 
 	return NOTIFY_DONE;
 }
--- a/net/netfilter/nft_chain_filter.c
+++ b/net/netfilter/nft_chain_filter.c
@@ -2,6 +2,7 @@
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
 #include <net/net_namespace.h>
+#include <net/netns/generic.h>
 #include <net/netfilter/nf_tables.h>
 #include <linux/netfilter_ipv4.h>
 #include <linux/netfilter_ipv6.h>
@@ -10,6 +11,8 @@
 #include <net/netfilter/nf_tables_ipv4.h>
 #include <net/netfilter/nf_tables_ipv6.h>
 
+extern unsigned int nf_tables_net_id;
+
 #ifdef CONFIG_NF_TABLES_IPV4
 static unsigned int nft_do_chain_ipv4(void *priv,
 				      struct sk_buff *skb,
@@ -355,6 +358,7 @@ static int nf_tables_netdev_event(struct
 				  unsigned long event, void *ptr)
 {
 	struct net_device *dev = netdev_notifier_info_to_dev(ptr);
+	struct nftables_pernet *nft_net;
 	struct nft_table *table;
 	struct nft_chain *chain, *nr;
 	struct nft_ctx ctx = {
@@ -365,8 +369,9 @@ static int nf_tables_netdev_event(struct
 	    event != NETDEV_CHANGENAME)
 		return NOTIFY_DONE;
 
-	mutex_lock(&ctx.net->nft.commit_mutex);
-	list_for_each_entry(table, &ctx.net->nft.tables, list) {
+	nft_net = net_generic(ctx.net, nf_tables_net_id);
+	mutex_lock(&nft_net->commit_mutex);
+	list_for_each_entry(table, &nft_net->tables, list) {
 		if (table->family != NFPROTO_NETDEV)
 			continue;
 
@@ -380,7 +385,7 @@ static int nf_tables_netdev_event(struct
 			nft_netdev_event(event, dev, &ctx);
 		}
 	}
-	mutex_unlock(&ctx.net->nft.commit_mutex);
+	mutex_unlock(&nft_net->commit_mutex);
 
 	return NOTIFY_DONE;
 }
--- a/net/netfilter/nft_dynset.c
+++ b/net/netfilter/nft_dynset.c
@@ -11,6 +11,9 @@
 #include <linux/netfilter/nf_tables.h>
 #include <net/netfilter/nf_tables.h>
 #include <net/netfilter/nf_tables_core.h>
+#include <net/netns/generic.h>
+
+extern unsigned int nf_tables_net_id;
 
 struct nft_dynset {
 	struct nft_set			*set;
@@ -106,13 +109,14 @@ static int nft_dynset_init(const struct
 			   const struct nft_expr *expr,
 			   const struct nlattr * const tb[])
 {
+	struct nftables_pernet *nft_net = net_generic(ctx->net, nf_tables_net_id);
 	struct nft_dynset *priv = nft_expr_priv(expr);
 	u8 genmask = nft_genmask_next(ctx->net);
 	struct nft_set *set;
 	u64 timeout;
 	int err;
 
-	lockdep_assert_held(&ctx->net->nft.commit_mutex);
+	lockdep_assert_held(&nft_net->commit_mutex);
 
 	if (tb[NFTA_DYNSET_SET_NAME] == NULL ||
 	    tb[NFTA_DYNSET_OP] == NULL ||



  parent reply	other threads:[~2023-07-25 11:26 UTC|newest]

Thread overview: 518+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-25 10:38 [PATCH 5.10 000/509] 5.10.188-rc1 review Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 001/509] media: atomisp: fix "variable dereferenced before check asd" Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 002/509] x86/smp: Use dedicated cache-line for mwait_play_dead() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 003/509] can: isotp: isotp_sendmsg(): fix return error fix on TX path Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 004/509] video: imsttfb: check for ioremap() failures Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 005/509] fbdev: imsttfb: Fix use after free bug in imsttfb_probe Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 006/509] HID: wacom: Use ktime_t rather than int when dealing with timestamps Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 007/509] HID: logitech-hidpp: add HIDPP_QUIRK_DELAYED_INIT for the T651 Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 008/509] Revert "thermal/drivers/mediatek: Use devm_of_iomap to avoid resource leak in mtk_thermal_probe" Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 009/509] scripts/tags.sh: Resolve gtags empty index generation Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 010/509] drm/amdgpu: Validate VM ioctl flags Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 011/509] nubus: Partially revert proc_create_single_data() conversion Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 012/509] fs: pipe: reveal missing function protoypes Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 013/509] x86/resctrl: Only show tasks pid in current pid namespace Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 014/509] blk-iocost: use spin_lock_irqsave in adjust_inuse_and_calc_cost Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 015/509] md/raid10: check slab-out-of-bounds in md_bitmap_get_counter Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 016/509] md/raid10: fix overflow of md/safe_mode_delay Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 017/509] md/raid10: fix wrong setting of max_corr_read_errors Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 018/509] md/raid10: fix null-ptr-deref of mreplace in raid10_sync_request Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 019/509] md/raid10: fix io loss while replacement replace rdev Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 020/509] irqchip/jcore-aic: Kill use of irq_create_strict_mappings() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 021/509] irqchip/jcore-aic: Fix missing allocation of IRQ descriptors Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 022/509] posix-timers: Prevent RT livelock in itimer_delete() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 023/509] tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 024/509] clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 025/509] PM: domains: fix integer overflow issues in genpd_parse_state() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 026/509] perf/arm-cmn: Fix DTC reset Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 027/509] powercap: RAPL: Fix CONFIG_IOSF_MBI dependency Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 028/509] ARM: 9303/1: kprobes: avoid missing-declaration warnings Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 029/509] cpufreq: intel_pstate: Fix energy_performance_preference for passive Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 030/509] thermal/drivers/sun8i: Fix some error handling paths in sun8i_ths_probe() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 031/509] rcuscale: Console output claims too few grace periods Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 032/509] rcuscale: Always log error message Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 033/509] rcuscale: Move shutdown from wait_event() to wait_event_idle() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 034/509] rcu/rcuscale: Move rcu_scale_*() after kfree_scale_cleanup() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 035/509] rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 036/509] perf/ibs: Fix interface via core pmu events Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 037/509] x86/mm: Fix __swp_entry_to_pte() for Xen PV guests Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 038/509] evm: Complete description of evm_inode_setattr() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 039/509] ima: Fix build warnings Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 040/509] pstore/ram: Add check for kstrdup Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 041/509] igc: Enable and fix RX hash usage by netstack Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 042/509] wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 043/509] wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 044/509] samples/bpf: Fix buffer overflow in tcp_basertt Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 045/509] spi: spi-geni-qcom: Correct CS_TOGGLE bit in SPI_TRANS_CFG Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 046/509] wifi: wilc1000: fix for absent RSN capabilities WFA testcase Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 047/509] wifi: mwifiex: Fix the size of a memory allocation in mwifiex_ret_802_11_scan() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 048/509] bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 049/509] sctp: add bpf_bypass_getsockopt proto callback Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 050/509] libbpf: fix offsetof() and container_of() to work with CO-RE Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 051/509] nfc: constify several pointers to u8, char and sk_buff Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 052/509] nfc: llcp: fix possible use of uninitialized variable in nfc_llcp_send_connect() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 053/509] bpftool: JIT limited misreported as negative value on aarch64 Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 054/509] regulator: core: Fix more error checking for debugfs_create_dir() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 055/509] regulator: core: Streamline debugfs operations Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 056/509] wifi: orinoco: Fix an error handling path in spectrum_cs_probe() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 057/509] wifi: orinoco: Fix an error handling path in orinoco_cs_probe() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 058/509] wifi: atmel: Fix an error handling path in atmel_probe() Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 059/509] wl3501_cs: Fix misspelling and provide missing documentation Greg Kroah-Hartman
2023-07-25 10:39 ` [PATCH 5.10 060/509] net: create netdev->dev_addr assignment helpers Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 061/509] wl3501_cs: use eth_hw_addr_set() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 062/509] wifi: wl3501_cs: Fix an error handling path in wl3501_probe() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 063/509] wifi: ray_cs: Utilize strnlen() in parse_addr() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 064/509] wifi: ray_cs: Drop useless status variable " Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 065/509] wifi: ray_cs: Fix an error handling path in ray_probe() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 066/509] wifi: ath9k: dont allow to overwrite ENDPOINT0 attributes Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 067/509] wifi: rsi: Do not configure WoWlan in shutdown hook if not enabled Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 068/509] wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 069/509] watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 070/509] watchdog/perf: more properly prevent false positives with turbo modes Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 071/509] kexec: fix a memory leak in crash_shrink_memory() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 072/509] memstick r592: make memstick_debug_get_tpc_name() static Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 073/509] wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 074/509] rtnetlink: extend RTEXT_FILTER_SKIP_STATS to IFLA_VF_INFO Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 075/509] wifi: iwlwifi: pull from TXQs with softirqs disabled Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 076/509] wifi: cfg80211: rewrite merging of inherited elements Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 077/509] wifi: ath9k: convert msecs to jiffies where needed Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 078/509] igc: Fix race condition in PTP tx code Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 079/509] net: stmmac: fix double serdes powerdown Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 080/509] netlink: fix potential deadlock in netlink_set_err() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 081/509] netlink: do not hard code device address lenth in fdb dumps Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 082/509] selftests: rtnetlink: remove netdevsim device after ipsec offload test Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 083/509] gtp: Fix use-after-free in __gtp_encap_destroy() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 084/509] net: axienet: Move reset before 64-bit DMA detection Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 085/509] sfc: fix crash when reading stats while NIC is resetting Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 086/509] nfc: llcp: simplify llcp_sock_connect() error paths Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 087/509] net: nfc: Fix use-after-free caused by nfc_llcp_find_local Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 088/509] lib/ts_bm: reset initial match offset for every block of text Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 089/509] netfilter: conntrack: dccp: copy entire header to stack buffer, not just basic one Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 090/509] netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return value Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 091/509] ipvlan: Fix return value of ipvlan_queue_xmit() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 092/509] netlink: Add __sock_i_ino() for __netlink_diag_dump() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 093/509] radeon: avoid double free in ci_dpm_init() Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 094/509] drm/amd/display: Explicitly specify update type per plane info change Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 095/509] Input: drv260x - sleep between polling GO bit Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 096/509] drm/bridge: tc358768: always enable HS video mode Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 097/509] drm/bridge: tc358768: fix PLL parameters computation Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 098/509] drm/bridge: tc358768: fix PLL target frequency Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 099/509] drm/bridge: tc358768: fix TCLK_ZEROCNT computation Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 100/509] drm/bridge: tc358768: Add atomic_get_input_bus_fmts() implementation Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 101/509] drm/bridge: tc358768: fix TCLK_TRAILCNT computation Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 102/509] drm/bridge: tc358768: fix THS_ZEROCNT computation Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 103/509] drm/bridge: tc358768: fix TXTAGOCNT computation Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 104/509] drm/bridge: tc358768: fix THS_TRAILCNT computation Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 105/509] drm/vram-helper: fix function names in vram helper doc Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 106/509] ARM: dts: BCM5301X: Drop "clock-names" from the SPI node Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 107/509] ARM: dts: meson8b: correct uart_B and uart_C clock references Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 108/509] Input: adxl34x - do not hardcode interrupt trigger type Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 109/509] drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks` Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 110/509] drm/panel: sharp-ls043t1le01: adjust mode settings Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 111/509] ARM: dts: stm32: Move ethernet MAC EEPROM from SoM to carrier boards Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 112/509] bus: ti-sysc: Fix dispc quirk masking bool variables Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 113/509] arm64: dts: microchip: sparx5: do not use PSCI on reference boards Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 114/509] RDMA/bnxt_re: Disable/kill tasklet only if it is enabled Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 115/509] RDMA/bnxt_re: Fix to remove unnecessary return labels Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 116/509] RDMA/bnxt_re: Use unique names while registering interrupts Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 117/509] RDMA/bnxt_re: Remove a redundant check inside bnxt_re_update_gid Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 118/509] RDMA/bnxt_re: Fix to remove an unnecessary log Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 119/509] ARM: dts: gta04: Move model property out of pinctrl node Greg Kroah-Hartman
2023-07-25 10:40 ` [PATCH 5.10 120/509] arm64: dts: qcom: msm8916: correct camss unit address Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 121/509] arm64: dts: qcom: msm8994: correct SPMI " Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 122/509] arm64: dts: qcom: msm8996: correct camss " Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 123/509] drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 124/509] ARM: ep93xx: fix missing-prototype warnings Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 125/509] ARM: omap2: fix missing tick_broadcast() prototype Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 126/509] arm64: dts: qcom: apq8096: fix fixed regulator name property Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 127/509] ARM: dts: stm32: Shorten the AV96 HDMI sound card name Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 128/509] memory: brcmstb_dpfe: fix testing array offset after use Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 129/509] ASoC: es8316: Increment max value for ALC Capture Target Volume control Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 130/509] ASoC: es8316: Do not set rate constraints for unsupported MCLKs Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 131/509] ARM: dts: meson8: correct uart_B and uart_C clock references Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 132/509] soc/fsl/qe: fix usb.c build errors Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 133/509] IB/hfi1: Use bitmap_zalloc() when applicable Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 134/509] IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 135/509] IB/hfi1: Fix wrong mmu_node used for user SDMA packet after invalidate Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 136/509] RDMA: Remove uverbs_ex_cmd_mask values that are linked to functions Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 137/509] RDMA/hns: Fix coding style issues Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 138/509] RDMA/hns: Use refcount_t APIs for HEM Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 139/509] RDMA/hns: Clean the hardware related code " Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 140/509] RDMA/hns: Fix hns_roce_table_get return value Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 141/509] ARM: dts: iwg20d-q7-common: Fix backlight pwm specifier Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 142/509] arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1 Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 143/509] fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe() Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 144/509] arm64: dts: ti: k3-j7200: Fix physical address of pin Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 145/509] ARM: dts: stm32: Fix audio routing on STM32MP15xx DHCOM PDK2 Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 146/509] ARM: dts: stm32: fix i2s endpoint format property for stm32mp15xx-dkx Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 147/509] hwmon: (gsc-hwmon) fix fan pwm temperature scaling Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 148/509] hwmon: (adm1275) enable adm1272 temperature reporting Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 149/509] hwmon: (adm1275) Allow setting sample averaging Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 150/509] hwmon: (pmbus/adm1275) Fix problems with temperature monitoring on ADM1272 Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 151/509] ARM: dts: BCM5301X: fix duplex-full => full-duplex Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 152/509] drm/amdkfd: Fix potential deallocation of previously deallocated memory Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 153/509] drm/radeon: fix possible division-by-zero errors Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 154/509] amdgpu: validate offset_in_bo of drm_amdgpu_gem_va Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 155/509] RDMA/bnxt_re: wraparound mbox producer index Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 156/509] RDMA/bnxt_re: Avoid calling wake_up threads from spin_lock context Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 157/509] clk: imx: clk-imx8mn: fix memory leak in imx8mn_clocks_probe Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 158/509] clk: imx: clk-imx8mp: improve error handling in imx8mp_clocks_probe() Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 159/509] clk: tegra: tegra124-emc: Fix potential memory leak Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 160/509] ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 161/509] drm/msm/dpu: do not enable color-management if DSPPs are not available Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 162/509] drm/msm/dp: Free resources after unregistering them Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 163/509] clk: vc5: check memory returned by kasprintf() Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 164/509] clk: cdce925: check return value of kasprintf() Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 165/509] clk: si5341: Allow different output VDD_SEL values Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 166/509] clk: si5341: Add sysfs properties to allow checking/resetting device faults Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 167/509] clk: si5341: return error if one synth clock registration fails Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 168/509] clk: si5341: check return value of {devm_}kasprintf() Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 169/509] clk: si5341: free unused memory on probe failure Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 170/509] clk: keystone: sci-clk: check return value of kasprintf() Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 171/509] clk: ti: clkctrl: " Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 172/509] drivers: meson: secure-pwrc: always enable DMA domain Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 173/509] ovl: update of dentry revalidate flags after copy up Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 174/509] ASoC: imx-audmix: check return value of devm_kasprintf() Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 175/509] PCI: cadence: Fix Gen2 Link Retraining process Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 176/509] scsi: qedf: Fix NULL dereference in error handling Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 177/509] pinctrl: bcm2835: Handle gpiochip_add_pin_range() errors Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 178/509] PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 179/509] scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() Greg Kroah-Hartman
2023-07-25 10:41 ` [PATCH 5.10 180/509] PCI: pciehp: Cancel bringup sequence if card is not present Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 181/509] PCI: ftpci100: Release the clock resources Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 182/509] PCI: Add pci_clear_master() stub for non-CONFIG_PCI Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 183/509] perf bench: Use unbuffered output when pipe/teeing to a file Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 184/509] perf bench: Add missing setlocale() call to allow usage of %d style formatting Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 185/509] pinctrl: cherryview: Return correct value if pin in push-pull mode Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 186/509] kcsan: Dont expect 64 bits atomic builtins from 32 bits architectures Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 187/509] perf script: Fixup struct evsel_script method prefix Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 188/509] perf script: Fix allocation of evsel->priv related to per-event dump files Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 189/509] perf dwarf-aux: Fix off-by-one in die_get_varname() Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 190/509] pinctrl: at91-pio4: check return value of devm_kasprintf() Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 191/509] powerpc/powernv/sriov: perform null check on iov before dereferencing iov Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 192/509] mm: rename pud_page_vaddr to pud_pgtable and make it return pmd_t * Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 193/509] mm: rename p4d_page_vaddr to p4d_pgtable and make it return pud_t * Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 194/509] powerpc/book3s64/mm: Fix DirectMap stats in /proc/meminfo Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 195/509] powerpc/mm/dax: Fix the condition when checking if altmap vmemap can cross-boundary Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 196/509] hwrng: virtio - add an internal buffer Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 197/509] hwrng: virtio - dont wait on cleanup Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 198/509] hwrng: virtio - dont waste entropy Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 199/509] hwrng: virtio - always add a pending request Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 200/509] hwrng: virtio - Fix race on data_avail and actual data Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 201/509] crypto: nx - fix build warnings when DEBUG_FS is not enabled Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 202/509] modpost: fix section mismatch message for R_ARM_ABS32 Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 203/509] modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24} Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 204/509] crypto: marvell/cesa - Fix type mismatch warning Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 205/509] modpost: fix off by one in is_executable_section() Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 206/509] ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 207/509] NFSv4.1: freeze the session table upon receiving NFS4ERR_BADSESSION Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 208/509] dax: Fix dax_mapping_release() use after free Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 209/509] dax: Introduce alloc_dev_dax_id() Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 210/509] hwrng: st - keep clock enabled while hwrng is registered Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 211/509] io_uring: ensure IOPOLL locks around deferred work Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 212/509] USB: serial: option: add LARA-R6 01B PIDs Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 213/509] usb: dwc3: gadget: Propagate core init errors to UDC during pullup Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 214/509] phy: tegra: xusb: Clear the driver reference in usb-phy dev Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 215/509] block: fix signed int overflow in Amiga partition support Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 216/509] block: change all __u32 annotations to __be32 in affs_hardblocks.h Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 217/509] SUNRPC: Fix UAF in svc_tcp_listen_data_ready() Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 218/509] w1: w1_therm: fix locking behavior in convert_t Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 219/509] w1: fix loop in w1_fini() Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 220/509] sh: j2: Use ioremap() to translate device tree address into kernel memory Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 221/509] serial: 8250: omap: Fix freeing of resources on failed register Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 222/509] clk: qcom: gcc-ipq6018: Use floor ops for sdcc clocks Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 223/509] media: usb: Check az6007_read() return value Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 224/509] media: videodev2.h: Fix struct v4l2_input tuner index comment Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 225/509] media: usb: siano: Fix warning due to null work_func_t function pointer Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 226/509] clk: qcom: reset: Allow specifying custom reset delay Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 227/509] clk: qcom: reset: support resetting multiple bits Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 228/509] clk: qcom: ipq6018: fix networking resets Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 229/509] usb: dwc3: qcom: Fix potential memory leak Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 230/509] usb: gadget: u_serial: Add null pointer check in gserial_suspend Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 231/509] extcon: Fix kernel doc of property fields to avoid warnings Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 232/509] extcon: Fix kernel doc of property capability " Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 233/509] usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe() Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 234/509] usb: hide unused usbfs_notify_suspend/resume functions Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 235/509] serial: 8250: lock port for stop_rx() in omap8250_irq() Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 236/509] serial: 8250: lock port for UART_IER access " Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 237/509] kernfs: fix missing kernfs_idr_lock to remove an ID from the IDR Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 238/509] coresight: Fix loss of connection info when a module is unloaded Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 239/509] mfd: rt5033: Drop rt5033-battery sub-device Greg Kroah-Hartman
2023-07-25 10:42 ` [PATCH 5.10 240/509] media: venus: helpers: Fix ALIGN() of non power of two Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 241/509] media: atomisp: gmin_platform: fix out_len in gmin_get_config_dsm_var() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 242/509] KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 243/509] usb: dwc3: qcom: Release the correct resources in dwc3_qcom_remove() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 244/509] usb: dwc3: qcom: Fix an error handling path in dwc3_qcom_probe() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 245/509] usb: common: usb-conn-gpio: Set last role to unknown before initial detection Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 246/509] usb: dwc3-meson-g12a: Fix an error handling path in dwc3_meson_g12a_probe() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 247/509] mfd: intel-lpss: Add missing check for platform_get_resource Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 248/509] Revert "usb: common: usb-conn-gpio: Set last role to unknown before initial detection" Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 249/509] serial: 8250_omap: Use force_suspend and resume for system suspend Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 250/509] test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 251/509] mfd: stmfx: Fix error path in stmfx_chip_init Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 252/509] mfd: stmfx: Nullify stmfx->vdd in case of error Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 253/509] KVM: s390: vsie: fix the length of APCB bitmap Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 254/509] mfd: stmpe: Only disable the regulators if they are enabled Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 255/509] phy: tegra: xusb: check return value of devm_kzalloc() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 256/509] pwm: imx-tpm: force real_period to be zero in suspend Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 257/509] pwm: sysfs: Do not apply state to already disabled PWMs Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 258/509] rtc: st-lpc: Release some resources in st_rtc_probe() in case of error Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 259/509] media: cec: i2c: ch7322: also select REGMAP Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 260/509] sctp: fix potential deadlock on &net->sctp.addr_wq_lock Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 261/509] Add MODULE_FIRMWARE() for FIRMWARE_TG357766 Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 262/509] net: dsa: vsc73xx: fix MTU configuration Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 263/509] spi: bcm-qspi: return error if neither hif_mspi nor mspi is available Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 264/509] mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 265/509] f2fs: fix error path handling in truncate_dnode() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 266/509] octeontx2-af: Fix mapping for NIX block from CGX connection Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 267/509] powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 268/509] net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 269/509] tcp: annotate data races in __tcp_oow_rate_limited() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 270/509] xsk: Honor SO_BINDTODEVICE on bind Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 271/509] net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 272/509] pptp: Fix fib lookup calls Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 273/509] net: dsa: tag_sja1105: fix MAC DA patching from meta frames Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 274/509] s390/qeth: Fix vipa deletion Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 275/509] sh: dma: Fix DMA channel offset calculation Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 276/509] apparmor: fix missing error check for rhashtable_insert_fast Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 277/509] i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 278/509] i2c: xiic: Dont try to handle more interrupt events after error Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 279/509] ALSA: jack: Fix mutex call in snd_jack_report() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 280/509] i2c: qup: Add missing unwind goto in qup_i2c_probe() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 281/509] NFSD: add encoding of op_recall flag for write delegation Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 282/509] io_uring: wait interruptibly for request completions on exit Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 283/509] mmc: core: disable TRIM on Kingston EMMC04G-M627 Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 284/509] mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 285/509] mmc: mmci: Set PROBE_PREFER_ASYNCHRONOUS Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 286/509] mmc: sdhci: fix DMA configure compatibility issue when 64bit DMA mode is used Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 287/509] bcache: fixup btree_cache_wait list damage Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 288/509] bcache: Remove unnecessary NULL point check in node allocations Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 289/509] bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 290/509] um: Use HOST_DIR for mrproper Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 291/509] integrity: Fix possible multiple allocation in integrity_inode_get() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 292/509] autofs: use flexible array in ioctl structure Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 293/509] shmem: use ramfs_kill_sb() for kill_sb method of ramfs-based tmpfs Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 294/509] jffs2: reduce stack usage in jffs2_build_xattr_subsystem() Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 295/509] fs: avoid empty option when generating legacy mount string Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 296/509] ext4: Remove ext4 locking of moved directory Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 297/509] Revert "f2fs: fix potential corruption when moving a directory" Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 298/509] fs: Establish locking order for unrelated directories Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 299/509] fs: Lock moved directories Greg Kroah-Hartman
2023-07-25 10:43 ` [PATCH 5.10 300/509] btrfs: add handling for RAID1C23/DUP to btrfs_reduce_alloc_profile Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 301/509] btrfs: fix race when deleting quota root from the dirty cow roots list Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 302/509] ASoC: mediatek: mt8173: Fix irq error path Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 303/509] ASoC: mediatek: mt8173: Fix snd_soc_component_initialize " Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 304/509] ARM: orion5x: fix d2net gpio initialization Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 305/509] leds: trigger: netdev: Recheck NETDEV_LED_MODE_LINKUP on dev rename Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 306/509] fs: no need to check source Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 307/509] fanotify: disallow mount/sb marks on kernel internal pseudo fs Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 308/509] tpm, tpm_tis: Claim locality in interrupt handler Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 309/509] selftests/bpf: Add verifier test for PTR_TO_MEM spill Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 310/509] block: add overflow checks for Amiga partition support Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 311/509] sh: pgtable-3level: Fix cast to pointer from integer of different size Greg Kroah-Hartman
2023-07-25 10:44 ` Greg Kroah-Hartman [this message]
2023-07-25 10:44 ` [PATCH 5.10 313/509] netfilter: nf_tables: add rescheduling points during loop detection walks Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 314/509] netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 315/509] netfilter: nf_tables: fix chain binding transaction logic Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 316/509] netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 317/509] netfilter: nf_tables: reject unbound anonymous set before commit phase Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 318/509] netfilter: nf_tables: reject unbound chain " Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 319/509] netfilter: nftables: rename set element data activation/deactivation functions Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 320/509] netfilter: nf_tables: drop map element references from preparation phase Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 321/509] netfilter: nf_tables: unbind non-anonymous set if rule construction fails Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 322/509] netfilter: nf_tables: fix scheduling-while-atomic splat Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 323/509] netfilter: conntrack: Avoid nf_ct_helper_hash uses after free Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 324/509] netfilter: nf_tables: do not ignore genmask when looking up chain by id Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 325/509] netfilter: nf_tables: prevent OOB access in nft_byteorder_eval Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 326/509] wireguard: queueing: use saner cpu selection wrapping Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 327/509] wireguard: netlink: send staged packets when setting initial private key Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 328/509] tty: serial: fsl_lpuart: add earlycon for imx8ulp platform Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 329/509] rcu-tasks: Mark ->trc_reader_nesting data races Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 330/509] rcu-tasks: Mark ->trc_reader_special.b.need_qs " Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 331/509] rcu-tasks: Simplify trc_read_check_handler() atomic operations Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 332/509] block/partition: fix signedness issue for Amiga partitions Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 333/509] io_uring: Use io_schedule* in cqring wait Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 334/509] io_uring: add reschedule point to handle_tw_list() Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 335/509] net: lan743x: Dont sleep in atomic context Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 336/509] workqueue: clean up WORK_* constant types, clarify masking Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 337/509] drm/panel: simple: Add connector_type for innolux_at043tn24 Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 338/509] drm/panel: simple: Add Powertip PH800480T013 drm_display_mode flags Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 339/509] igc: Remove delay during TX ring configuration Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 340/509] net/mlx5e: fix double free in mlx5e_destroy_flow_table Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 341/509] net/mlx5e: Check for NOT_READY flag state after locking Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 342/509] igc: set TP bit in supported and advertising fields of ethtool_link_ksettings Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 343/509] scsi: qla2xxx: Fix error code in qla2x00_start_sp() Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 344/509] net: mvneta: fix txq_map in case of txq_number==1 Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 345/509] net/sched: cls_fw: Fix improper refcount update leads to use-after-free Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 346/509] gve: Set default duplex configuration to full Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 347/509] ionic: remove WARN_ON to prevent panic_on_warn Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 348/509] net: bgmac: postpone turning IRQs off to avoid SoC hangs Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 349/509] net: prevent skb corruption on frag list segmentation Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 350/509] icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev() Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 351/509] udp6: fix udp6_ehashfn() typo Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 352/509] ntb: idt: Fix error handling in idt_pci_driver_init() Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 353/509] NTB: amd: Fix error handling in amd_ntb_pci_driver_init() Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 354/509] ntb: intel: Fix error handling in intel_ntb_pci_driver_init() Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 355/509] NTB: ntb_transport: fix possible memory leak while device_register() fails Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 356/509] NTB: ntb_tool: Add check for devm_kcalloc Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 357/509] ipv6/addrconf: fix a potential refcount underflow for idev Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 358/509] platform/x86: wmi: remove unnecessary argument Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 359/509] platform/x86: wmi: use guid_t and guid_equal() Greg Kroah-Hartman
2023-07-25 10:44 ` [PATCH 5.10 360/509] platform/x86: wmi: move variables Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 361/509] platform/x86: wmi: Break possible infinite loop when parsing GUID Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 362/509] igc: Fix launchtime before start of cycle Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 363/509] igc: Fix inserting of empty frame for launchtime Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 364/509] riscv: bpf: Move bpf_jit_alloc_exec() and bpf_jit_free_exec() to core Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 365/509] riscv: bpf: Avoid breaking W^X Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 366/509] bpf, riscv: Support riscv jit to provide bpf_line_info Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 367/509] riscv, bpf: Fix inconsistent JIT image generation Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 368/509] erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 369/509] wifi: airo: avoid uninitialized warning in airo_get_rate() Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 370/509] net/sched: flower: Ensure both minimum and maximum ports are specified Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 371/509] netdevsim: fix uninitialized data in nsim_dev_trap_fa_cookie_write() Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 372/509] net/sched: make psched_mtu() RTNL-less safe Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 373/509] net/sched: sch_qfq: refactor parsing of netlink parameters Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 374/509] net/sched: sch_qfq: account for stab overhead in qfq_enqueue Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 375/509] nvme-pci: fix DMA direction of unmapping integrity data Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 376/509] f2fs: fix to avoid NULL pointer dereference f2fs_write_end_io() Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 377/509] pinctrl: amd: Fix mistake in handling clearing pins at startup Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 378/509] pinctrl: amd: Detect internal GPIO0 debounce handling Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 379/509] pinctrl: amd: Only use special debounce behavior for GPIO 0 Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 380/509] tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 381/509] mtd: rawnand: meson: fix unaligned DMA buffers handling Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 382/509] net: bcmgenet: Ensure MDIO unregistration has clocks enabled Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 383/509] powerpc: Fail build if using recordmcount with binutils v2.37 Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 384/509] misc: fastrpc: Create fastrpc scalar with correct buffer count Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 385/509] erofs: fix compact 4B support for 16k block size Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 386/509] MIPS: Loongson: Fix cpu_probe_loongson() again Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 387/509] ext4: Fix reusing stale buffer heads from last failed mounting Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 388/509] ext4: fix wrong unit use in ext4_mb_clear_bb Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 389/509] ext4: get block from bh in ext4_free_blocks for fast commit replay Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 390/509] ext4: fix wrong unit use in ext4_mb_new_blocks Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 391/509] ext4: fix to check return value of freeze_bdev() in ext4_shutdown() Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 392/509] ext4: only update i_reserved_data_blocks on successful block allocation Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 393/509] jfs: jfs_dmap: Validate db_l2nbperpage while mounting Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 394/509] hwrng: imx-rngc - fix the timeout for init and self check Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 395/509] PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 396/509] PCI: Add function 1 DMA alias quirk for Marvell 88SE9235 Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 397/509] PCI: qcom: Disable write access to read only registers for IP v2.3.3 Greg Kroah-Hartman
2023-09-24 21:15   ` Ben Hutchings
2023-10-07 11:57     ` Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 398/509] PCI: rockchip: Assert PCI Configuration Enable bit after probe Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 399/509] PCI: rockchip: Write PCI Device ID to correct register Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 400/509] PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 401/509] PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 402/509] PCI: rockchip: Use u32 variable to access 32-bit registers Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 403/509] PCI: rockchip: Set address alignment for endpoint mode Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 404/509] misc: pci_endpoint_test: Free IRQs before removing the device Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 405/509] misc: pci_endpoint_test: Re-init completion for every test Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 406/509] md/raid0: add discard support for the original layout Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 407/509] fs: dlm: return positive pid value for F_GETLK Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 408/509] drm/atomic: Allow vblank-enabled + self-refresh "disable" Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 409/509] drm/rockchip: vop: Leave vblank enabled in self-refresh Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 410/509] drm/amd/display: Correct `DMUB_FW_VERSION` macro Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 411/509] serial: atmel: dont enable IRQs prematurely Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 412/509] tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 413/509] tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when iterating clk Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 414/509] firmware: stratix10-svc: Fix a potential resource leak in svc_create_memory_pool() Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 415/509] ceph: dont let check_caps skip sending responses for revoke msgs Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 416/509] xhci: Fix resume issue of some ZHAOXIN hosts Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 417/509] xhci: Fix TRB prefetch issue of " Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 418/509] xhci: Show ZHAOXIN xHCI root hub speed correctly Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 419/509] meson saradc: fix clock divider mask length Greg Kroah-Hartman
2023-07-25 10:45 ` [PATCH 5.10 420/509] Revert "8250: add support for ASIX devices with a FIFO bug" Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 421/509] s390/decompressor: fix misaligned symbol build error Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 422/509] tracing/histograms: Add histograms to hist_vars if they have referenced variables Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 423/509] samples: ftrace: Save required argument registers in sample trampolines Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 424/509] net: ena: fix shift-out-of-bounds in exponential backoff Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 425/509] ring-buffer: Fix deadloop issue on reading trace_pipe Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 426/509] xtensa: ISS: fix call to split_if_spec Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 427/509] tracing: Fix null pointer dereference in tracing_err_log_open() Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 428/509] tracing/probes: Fix not to count error code to total length Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 429/509] scsi: qla2xxx: Wait for io return on terminate rport Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 430/509] scsi: qla2xxx: Array index may go out of bound Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 431/509] scsi: qla2xxx: Fix buffer overrun Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 432/509] scsi: qla2xxx: Fix potential NULL pointer dereference Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 433/509] scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport() Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 434/509] scsi: qla2xxx: Correct the index of array Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 435/509] scsi: qla2xxx: Pointer may be dereferenced Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 436/509] scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 437/509] net/sched: sch_qfq: reintroduce lmax bound check for MTU Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 438/509] RDMA/cma: Ensure rdma_addr_cancel() happens before issuing more requests Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 439/509] drm/atomic: Fix potential use-after-free in nonblocking commits Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 440/509] ALSA: hda/realtek - remove 3k pull low procedure Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 441/509] ALSA: hda/realtek: Enable Mute LED on HP Laptop 15s-eq2xxx Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 442/509] keys: Fix linking a duplicate key to a keyrings assoc_array Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 443/509] perf probe: Add test for regression introduced by switch to die_get_decl_file() Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 444/509] btrfs: fix warning when putting transaction with qgroups enabled after abort Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 445/509] fuse: revalidate: dont invalidate if interrupted Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 446/509] selftests: tc: set timeout to 15 minutes Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 447/509] selftests: tc: add ct action kconfig dep Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 448/509] regmap: Drop initial version of maximum transfer length fixes Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 449/509] regmap: Account for register length in SMBus I/O limits Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 450/509] can: bcm: Fix UAF in bcm_proc_show() Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 451/509] drm/client: Fix memory leak in drm_client_target_cloned Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 452/509] drm/client: Fix memory leak in drm_client_modeset_probe Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 453/509] ASoC: fsl_sai: Disable bit clock with transmitter Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 454/509] ext4: correct inline offset when handling xattrs in inode body Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 455/509] debugobjects: Recheck debug_objects_enabled before reporting Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 456/509] nbd: Add the maximum limit of allocated index in nbd_dev_add Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 457/509] md: fix data corruption for raid456 when reshape restart while grow up Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 458/509] md/raid10: prevent soft lockup while flush writes Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 459/509] posix-timers: Ensure timer ID search-loop limit is valid Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 460/509] btrfs: add xxhash to fast checksum implementations Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 461/509] ACPI: button: Add lid disable DMI quirk for Nextbook Ares 8A Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 462/509] ACPI: video: Add backlight=native DMI quirk for Apple iMac11,3 Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 463/509] ACPI: video: Add backlight=native DMI quirk for Lenovo ThinkPad X131e (3371 AMD version) Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 464/509] arm64: set __exception_irq_entry with __irq_entry as a default Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 465/509] arm64: mm: fix VA-range sanity check Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 466/509] sched/fair: Dont balance task to its current running CPU Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 467/509] wifi: ath11k: fix registration of 6Ghz-only phy without the full channel range Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 468/509] bpf: Address KCSAN report on bpf_lru_list Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 469/509] devlink: report devlink_port_type_warn source device Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 470/509] wifi: wext-core: Fix -Wstringop-overflow warning in ioctl_standard_iw_point() Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 471/509] wifi: iwlwifi: mvm: avoid baid size integer overflow Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 472/509] igb: Fix igb_down hung on surprise removal Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 473/509] spi: bcm63xx: fix max prepend length Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 474/509] fbdev: imxfb: warn about invalid left/right margin Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 475/509] pinctrl: amd: Use amd_pinconf_set() for all config options Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 476/509] net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field() Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 477/509] bridge: Add extack warning when enabling STP in netns Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 478/509] iavf: Fix use-after-free in free_netdev Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 479/509] iavf: Fix out-of-bounds when setting channels on remove Greg Kroah-Hartman
2023-07-25 10:46 ` [PATCH 5.10 480/509] security: keys: Modify mismatched function name Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 481/509] octeontx2-pf: Dont allocate BPIDs for LBK interfaces Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 482/509] tcp: annotate data-races around tcp_rsk(req)->ts_recent Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 483/509] net: ipv4: Use kfree_sensitive instead of kfree Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 484/509] net:ipv6: check return value of pskb_trim() Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 485/509] Revert "tcp: avoid the lookup process failing to get sk in ehash table" Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 486/509] fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 487/509] llc: Dont drop packet from non-root netns Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 488/509] netfilter: nf_tables: fix spurious set element insertion failure Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 489/509] netfilter: nf_tables: cant schedule in nft_chain_validate Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 490/509] netfilter: nft_set_pipapo: fix improper element removal Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 491/509] netfilter: nf_tables: skip bound chain in netns release path Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 492/509] netfilter: nf_tables: skip bound chain on rule flush Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 493/509] tcp: annotate data-races around tp->tcp_tx_delay Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 494/509] tcp: annotate data-races around tp->keepalive_time Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 495/509] tcp: annotate data-races around tp->keepalive_intvl Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 496/509] tcp: annotate data-races around tp->keepalive_probes Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 497/509] net: Introduce net.ipv4.tcp_migrate_req Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 498/509] tcp: Fix data-races around sysctl_tcp_syn(ack)?_retries Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 499/509] tcp: annotate data-races around icsk->icsk_syn_retries Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 500/509] tcp: annotate data-races around tp->linger2 Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 501/509] tcp: annotate data-races around rskq_defer_accept Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 502/509] tcp: annotate data-races around tp->notsent_lowat Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 503/509] tcp: annotate data-races around icsk->icsk_user_timeout Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 504/509] tcp: annotate data-races around fastopenq.max_qlen Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 505/509] net: phy: prevent stale pointer dereference in phy_init() Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 506/509] tracing/histograms: Return an error if we fail to add histogram to hist_vars list Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 507/509] tracing: Fix memory leak of iter->temp when reading trace_pipe Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 508/509] ftrace: Store the order of pages allocated in ftrace_page Greg Kroah-Hartman
2023-07-25 10:47 ` [PATCH 5.10 509/509] ftrace: Fix possible warning on checking all pages used in ftrace_process_locs() Greg Kroah-Hartman
2023-07-25 14:40 ` [PATCH 5.10 000/509] 5.10.188-rc1 review Naresh Kamboju
2023-07-26  4:46   ` Greg Kroah-Hartman
2023-07-25 16:27 ` Jon Hunter
2023-07-25 20:22 ` Shuah Khan
2023-07-25 21:24 ` Florian Fainelli
2023-07-28  9:31 ` luomeng

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=20230725104608.030205940@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=fw@strlen.de \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=patches@lists.linux.dev \
    --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;
as well as URLs for NNTP newsgroup(s).