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 4.19 128/323] netfilter: nf_tables: use net_generic infra for transaction data
Date: Wed, 9 Aug 2023 12:39:26 +0200 [thread overview]
Message-ID: <20230809103703.976696696@linuxfoundation.org> (raw)
In-Reply-To: <20230809103658.104386911@linuxfoundation.org>
From: Pablo Neira Ayuso <pablo@netfilter.org>
[ 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 | 5
net/netfilter/nf_tables_api.c | 303 +++++++++++++++++++++++---------------
net/netfilter/nft_chain_filter.c | 11 +
net/netfilter/nft_dynset.c | 6
5 files changed, 210 insertions(+), 125 deletions(-)
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -1409,4 +1409,14 @@ struct nft_trans_flowtable {
int __init nft_chain_filter_init(void);
void nft_chain_filter_fini(void);
+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,12 +5,7 @@
#include <linux/list.h>
struct netns_nftables {
- struct list_head tables;
- struct list_head commit_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
@@ -22,10 +22,13 @@
#include <net/netfilter/nf_tables_core.h>
#include <net/netfilter/nf_tables.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);
@@ -53,7 +56,9 @@ static const struct rhashtable_params nf
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;
@@ -64,7 +69,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 nft_ctx_init(struct nft_ctx *ctx,
@@ -117,13 +122,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)
@@ -137,6 +144,14 @@ static void nft_set_trans_bind(const str
}
}
+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 nf_tables_register_hook(struct net *net,
const struct nft_table *table,
struct nft_chain *chain)
@@ -187,7 +202,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;
}
@@ -214,7 +229,7 @@ static int nft_trans_chain_add(struct nf
if (msg_type == NFT_MSG_NEWCHAIN)
nft_activate_next(ctx->net, ctx->chain);
- list_add_tail(&trans->list, &ctx->net->nft.commit_list);
+ nft_trans_commit_list_add_tail(ctx->net, trans);
return 0;
}
@@ -287,7 +302,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;
}
@@ -342,7 +357,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;
}
@@ -374,7 +389,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;
}
@@ -407,7 +422,7 @@ static int nft_trans_flowtable_add(struc
nft_activate_next(ctx->net, flowtable);
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;
}
@@ -435,12 +450,14 @@ 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) {
+ nft_net = net_generic(net, nf_tables_net_id);
+ list_for_each_entry_rcu(table, &nft_net->tables, list) {
if (!nla_strcmp(nla, table->name) &&
table->family == family &&
nft_active_genmask(table, genmask))
@@ -454,9 +471,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;
@@ -509,11 +528,13 @@ __nf_tables_chain_type_lookup(const stru
static void nft_request_module(struct net *net, const char *fmt, ...)
{
char module_name[MODULE_NAME_LEN];
+ struct nftables_pernet *nft_net;
LIST_HEAD(commit_list);
va_list args;
int ret;
- list_splice_init(&net->nft.commit_list, &commit_list);
+ nft_net = net_generic(net, nf_tables_net_id);
+ list_splice_init(&nft_net->commit_list, &commit_list);
va_start(args, fmt);
ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
@@ -521,12 +542,12 @@ static void nft_request_module(struct ne
if (ret >= MODULE_NAME_LEN)
return;
- mutex_unlock(&net->nft.commit_mutex);
+ mutex_unlock(&nft_net->commit_mutex);
request_module("%s", module_name);
- mutex_lock(&net->nft.commit_mutex);
+ mutex_lock(&nft_net->commit_mutex);
- WARN_ON_ONCE(!list_empty(&net->nft.commit_list));
- list_splice(&commit_list, &net->nft.commit_list);
+ WARN_ON_ONCE(!list_empty(&nft_net->commit_list));
+ list_splice(&commit_list, &nft_net->commit_list);
}
#endif
@@ -563,7 +584,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] = {
@@ -631,15 +654,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;
@@ -813,7 +838,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);
@@ -848,6 +873,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;
@@ -857,7 +883,7 @@ static int nf_tables_newtable(struct net
struct nft_ctx ctx;
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)) {
@@ -907,7 +933,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);
@@ -987,11 +1013,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;
@@ -1105,7 +1132,9 @@ nft_chain_lookup_byhandle(const struct n
static bool lockdep_commit_lock_is_held(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
@@ -1302,11 +1331,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;
@@ -1499,12 +1530,13 @@ 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;
struct net_device *dev;
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(ha, NFTA_HOOK_MAX, nla[NFTA_CHAIN_HOOK],
@@ -1773,6 +1805,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;
@@ -1782,7 +1815,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) &&
@@ -1795,7 +1828,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:
@@ -1809,6 +1842,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;
@@ -1819,7 +1853,7 @@ static int nf_tables_newchain(struct net
struct nft_ctx ctx;
u64 handle = 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)) {
@@ -2342,11 +2376,13 @@ static int nf_tables_dump_rules(struct s
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;
@@ -2499,7 +2535,6 @@ static void nf_tables_rule_destroy(const
{
struct nft_expr *expr, *next;
- lockdep_assert_held(&ctx->net->nft.commit_mutex);
/*
* Careful: some expressions might not be initialized in case this
* is called on error from nf_tables_newrule().
@@ -2579,6 +2614,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;
@@ -2595,7 +2631,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)) {
@@ -2743,7 +2779,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);
return 0;
@@ -2765,10 +2801,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 &&
@@ -2887,12 +2924,13 @@ 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;
- lockdep_assert_held(&ctx->net->nft.commit_mutex);
+ lockdep_assert_held(&nft_net->commit_mutex);
lockdep_nfnl_nft_mutex_not_held();
#ifdef CONFIG_MODULES
if (list_empty(&nf_tables_set_types)) {
@@ -3038,10 +3076,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);
@@ -3257,14 +3296,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;
@@ -3971,6 +4012,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;
@@ -3981,7 +4023,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;
@@ -4571,7 +4614,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;
err6:
@@ -4596,6 +4639,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;
@@ -4625,7 +4669,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;
@@ -4738,7 +4782,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:
@@ -4772,7 +4816,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:
@@ -5151,6 +5195,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;
@@ -5158,9 +5203,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;
@@ -5826,12 +5872,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;
@@ -6001,6 +6049,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);
@@ -6010,7 +6059,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;
@@ -6043,6 +6092,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;
@@ -6050,13 +6100,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;
}
@@ -6237,16 +6288,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);
/* fall through */
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;
}
@@ -6323,14 +6375,15 @@ static void nft_commit_release(struct nf
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, *next;
- if (list_empty(&net->nft.commit_list))
+ if (list_empty(&nft_net->commit_list))
return;
synchronize_rcu();
- list_for_each_entry_safe(trans, next, &net->nft.commit_list, list) {
+ list_for_each_entry_safe(trans, next, &nft_net->commit_list, list) {
list_del(&trans->list);
nft_commit_release(trans);
}
@@ -6369,9 +6422,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 ||
@@ -6463,6 +6517,7 @@ static void nft_chain_del(struct nft_cha
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;
@@ -6473,7 +6528,7 @@ static int nf_tables_commit(struct net *
return -EAGAIN;
/* 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;
if (trans->msg_type == NFT_MSG_NEWRULE ||
@@ -6489,7 +6544,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);
}
@@ -6498,12 +6553,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) {
switch (trans->msg_type) {
case NFT_MSG_NEWTABLE:
if (nft_trans_table_update(trans)) {
@@ -6624,7 +6680,7 @@ static int nf_tables_commit(struct net *
nf_tables_commit_release(net);
nf_tables_gen_notify(net, skb, NFT_MSG_NEWGEN);
- mutex_unlock(&net->nft.commit_mutex);
+ mutex_unlock(&nft_net->commit_mutex);
return 0;
}
@@ -6660,10 +6716,11 @@ static void nf_tables_abort_release(stru
static int __nf_tables_abort(struct net *net)
{
+ struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
struct nft_trans *trans, *next;
struct nft_trans_elem *te;
- 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:
@@ -6770,7 +6827,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);
}
@@ -6780,22 +6837,24 @@ static int __nf_tables_abort(struct net
static int nf_tables_abort(struct net *net, struct sk_buff *skb)
{
+ struct nftables_pernet *nft_net = net_generic(net, nf_tables_net_id);
int ret = __nf_tables_abort(net);
- 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;
@@ -7353,10 +7412,9 @@ int __nft_release_basechain(struct nft_c
}
EXPORT_SYMBOL_GPL(__nft_release_basechain);
-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;
@@ -7366,71 +7424,84 @@ 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.family = table->family;
- list_for_each_entry(chain, &table->chains, list)
- nf_tables_unregister_hook(net, table, chain);
- /* No packets are walking on these chains anymore. */
- 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(set);
- }
- list_for_each_entry_safe(obj, ne, &table->objects, list) {
- list_del(&obj->list);
- 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_for_each_entry(chain, &table->chains, list)
+ nf_tables_unregister_hook(net, table, chain);
+ /* No packets are walking on these chains anymore. */
+ 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(set);
+ }
+ list_for_each_entry_safe(obj, ne, &table->objects, list) {
+ list_del(&obj->list);
+ 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);
- 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);
+ 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_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);
__nft_release_tables(net);
- mutex_unlock(&net->nft.commit_mutex);
- WARN_ON_ONCE(!list_empty(&net->nft.tables));
+ mutex_unlock(&nft_net->commit_mutex);
+ WARN_ON_ONCE(!list_empty(&nft_net->tables));
}
static struct pernet_operations nf_tables_net_ops = {
.init = nf_tables_init_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/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,
@@ -315,6 +318,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 = {
@@ -325,8 +329,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;
@@ -340,7 +345,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
@@ -15,6 +15,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;
@@ -112,13 +115,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 ||
next prev parent reply other threads:[~2023-08-09 11:17 UTC|newest]
Thread overview: 335+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-09 10:37 [PATCH 4.19 000/323] 4.19.291-rc1 review Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 001/323] gfs2: Dont deref jdesc in evict Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 002/323] x86/smp: Use dedicated cache-line for mwait_play_dead() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 003/323] video: imsttfb: check for ioremap() failures Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 004/323] fbdev: imsttfb: Fix use after free bug in imsttfb_probe Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 005/323] drm/edid: Fix uninitialized variable in drm_cvt_modes() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 006/323] scripts/tags.sh: Resolve gtags empty index generation Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 007/323] drm/amdgpu: Validate VM ioctl flags Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 008/323] treewide: Remove uninitialized_var() usage Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 009/323] md/raid10: check slab-out-of-bounds in md_bitmap_get_counter Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 010/323] md/raid10: fix overflow of md/safe_mode_delay Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 011/323] md/raid10: fix wrong setting of max_corr_read_errors Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 012/323] md/raid10: fix io loss while replacement replace rdev Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 013/323] irqchip/jcore-aic: Kill use of irq_create_strict_mappings() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 014/323] irqchip/jcore-aic: Fix missing allocation of IRQ descriptors Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 015/323] clocksource/drivers: Unify the names to timer-* format Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 016/323] clocksource/drivers/cadence-ttc: Use ttc driver as platform driver Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 017/323] clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 018/323] PM: domains: fix integer overflow issues in genpd_parse_state() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 019/323] ARM: 9303/1: kprobes: avoid missing-declaration warnings Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 020/323] evm: Complete description of evm_inode_setattr() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 021/323] wifi: ath9k: fix AR9003 mac hardware hang check register offset calculation Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 022/323] wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 023/323] samples/bpf: Fix buffer overflow in tcp_basertt Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 024/323] wifi: mwifiex: Fix the size of a memory allocation in mwifiex_ret_802_11_scan() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 025/323] nfc: constify several pointers to u8, char and sk_buff Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 026/323] nfc: llcp: fix possible use of uninitialized variable in nfc_llcp_send_connect() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 027/323] wifi: orinoco: Fix an error handling path in spectrum_cs_probe() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 028/323] wifi: orinoco: Fix an error handling path in orinoco_cs_probe() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 029/323] wifi: atmel: Fix an error handling path in atmel_probe() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 030/323] wl3501_cs: Fix a bunch of formatting issues related to function docs Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 031/323] wl3501_cs: Remove unnecessary NULL check Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 032/323] wl3501_cs: Fix misspelling and provide missing documentation Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 033/323] net: create netdev->dev_addr assignment helpers Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 034/323] wl3501_cs: use eth_hw_addr_set() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 035/323] wifi: wl3501_cs: Fix an error handling path in wl3501_probe() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 036/323] wifi: ray_cs: Utilize strnlen() in parse_addr() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 037/323] wifi: ray_cs: Drop useless status variable " Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 038/323] wifi: ray_cs: Fix an error handling path in ray_probe() Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 039/323] wifi: ath9k: dont allow to overwrite ENDPOINT0 attributes Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 040/323] wifi: rsi: Do not set MMC_PM_KEEP_POWER in shutdown Greg Kroah-Hartman
2023-08-09 10:37 ` [PATCH 4.19 041/323] watchdog/perf: define dummy watchdog_update_hrtimer_threshold() on correct config Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 042/323] watchdog/perf: more properly prevent false positives with turbo modes Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 043/323] kexec: fix a memory leak in crash_shrink_memory() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 044/323] memstick r592: make memstick_debug_get_tpc_name() static Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 045/323] wifi: ath9k: Fix possible stall on ath9k_txq_list_has_key() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 046/323] wifi: ath9k: convert msecs to jiffies where needed Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 047/323] netlink: fix potential deadlock in netlink_set_err() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 048/323] netlink: do not hard code device address lenth in fdb dumps Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 049/323] gtp: Fix use-after-free in __gtp_encap_destroy() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 050/323] lib/ts_bm: reset initial match offset for every block of text Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 051/323] netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return value Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 052/323] ipvlan: Fix return value of ipvlan_queue_xmit() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 053/323] netlink: Add __sock_i_ino() for __netlink_diag_dump() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 054/323] radeon: avoid double free in ci_dpm_init() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 055/323] Input: drv260x - sleep between polling GO bit Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 056/323] ARM: dts: BCM5301X: Drop "clock-names" from the SPI node Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 057/323] Input: adxl34x - do not hardcode interrupt trigger type Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 058/323] drm/panel: simple: fix active size for Ampire AM-480272H3TMQW-T01H Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 059/323] ARM: ep93xx: fix missing-prototype warnings Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 060/323] ASoC: es8316: Increment max value for ALC Capture Target Volume control Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 061/323] soc/fsl/qe: fix usb.c build errors Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 062/323] IB/hfi1: Fix sdma.h tx->num_descs off-by-one errors Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 063/323] arm64: dts: renesas: ulcb-kf: Remove flow control for SCIF1 Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 064/323] fbdev: omapfb: lcd_mipid: Fix an error handling path in mipid_spi_probe() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 065/323] drm/radeon: fix possible division-by-zero errors Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 066/323] ALSA: ac97: Fix possible NULL dereference in snd_ac97_mixer Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 067/323] scsi: 3w-xxxx: Add error handling for initialization failure in tw_probe() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 068/323] PCI: Add pci_clear_master() stub for non-CONFIG_PCI Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 069/323] pinctrl: cherryview: Return correct value if pin in push-pull mode Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 070/323] perf dwarf-aux: Fix off-by-one in die_get_varname() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 071/323] pinctrl: at91-pio4: check return value of devm_kasprintf() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 072/323] hwrng: virtio - add an internal buffer Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 073/323] hwrng: virtio - dont wait on cleanup Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 074/323] hwrng: virtio - dont waste entropy Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 075/323] hwrng: virtio - always add a pending request Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 076/323] hwrng: virtio - Fix race on data_avail and actual data Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 077/323] crypto: nx - fix build warnings when DEBUG_FS is not enabled Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 078/323] modpost: fix section mismatch message for R_ARM_ABS32 Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 079/323] modpost: fix section mismatch message for R_ARM_{PC24,CALL,JUMP24} Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 080/323] ARCv2: entry: comments about hardware auto-save on taken interrupts Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 081/323] ARCv2: entry: push out the Z flag unclobber from common EXCEPTION_PROLOGUE Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 082/323] ARCv2: entry: avoid a branch Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 083/323] ARCv2: entry: rewrite to enable use of double load/stores LDD/STD Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 084/323] ARC: define ASM_NL and __ALIGN(_STR) outside #ifdef __ASSEMBLY__ guard Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 085/323] USB: serial: option: add LARA-R6 01B PIDs Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 086/323] block: change all __u32 annotations to __be32 in affs_hardblocks.h Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 087/323] w1: fix loop in w1_fini() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 088/323] sh: j2: Use ioremap() to translate device tree address into kernel memory Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 089/323] media: usb: Check az6007_read() return value Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 090/323] media: videodev2.h: Fix struct v4l2_input tuner index comment Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 091/323] media: usb: siano: Fix warning due to null work_func_t function pointer Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 092/323] extcon: Fix kernel doc of property fields to avoid warnings Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 093/323] extcon: Fix kernel doc of property capability " Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 094/323] usb: phy: phy-tahvo: fix memory leak in tahvo_usb_probe() Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 095/323] mfd: rt5033: Drop rt5033-battery sub-device Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 096/323] KVM: s390: fix KVM_S390_GET_CMMA_BITS for GFNs in memslot holes Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 097/323] mfd: intel-lpss: Add missing check for platform_get_resource Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 098/323] mfd: stmpe: Only disable the regulators if they are enabled Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 099/323] rtc: st-lpc: Release some resources in st_rtc_probe() in case of error Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 100/323] sctp: fix potential deadlock on &net->sctp.addr_wq_lock Greg Kroah-Hartman
2023-08-09 10:38 ` [PATCH 4.19 101/323] Add MODULE_FIRMWARE() for FIRMWARE_TG357766 Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 102/323] spi: bcm-qspi: return error if neither hif_mspi nor mspi is available Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 103/323] mailbox: ti-msgmgr: Fill non-message tx data fields with 0x0 Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 104/323] f2fs: fix error path handling in truncate_dnode() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 105/323] powerpc: allow PPC_EARLY_DEBUG_CPM only when SERIAL_CPM=y Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 106/323] net: bridge: keep ports without IFF_UNICAST_FLT in BR_PROMISC mode Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 107/323] tcp: annotate data races in __tcp_oow_rate_limited() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 108/323] net/sched: act_pedit: Add size check for TCA_PEDIT_PARMS_EX Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 109/323] sh: dma: Fix DMA channel offset calculation Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 110/323] i2c: xiic: Defer xiic_wakeup() and __xiic_start_xfer() in xiic_process() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 111/323] i2c: xiic: Dont try to handle more interrupt events after error Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 112/323] ALSA: jack: Fix mutex call in snd_jack_report() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 113/323] NFSD: add encoding of op_recall flag for write delegation Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 114/323] mmc: core: disable TRIM on Kingston EMMC04G-M627 Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 115/323] mmc: core: disable TRIM on Micron MTFC4GACAJCN-1M Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 116/323] bcache: Remove unnecessary NULL point check in node allocations Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 117/323] integrity: Fix possible multiple allocation in integrity_inode_get() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 118/323] jffs2: reduce stack usage in jffs2_build_xattr_subsystem() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 119/323] btrfs: fix race when deleting quota root from the dirty cow roots list Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 120/323] ARM: orion5x: fix d2net gpio initialization Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 121/323] spi: spi-fsl-spi: remove always-true conditional in fsl_spi_do_one_msg Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 122/323] spi: spi-fsl-spi: relax message sanity checking a little Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 123/323] spi: spi-fsl-spi: allow changing bits_per_word while CS is still active Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 124/323] netfilter: nf_tables: fix nat hook table deletion Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 125/323] netfilter: nf_tables: add rescheduling points during loop detection walks Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 126/323] netfilter: nftables: add helper function to set the base sequence number Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 127/323] netfilter: add helper function to set up the nfnetlink header and use it Greg Kroah-Hartman
2023-08-09 10:39 ` Greg Kroah-Hartman [this message]
2023-08-09 10:39 ` [PATCH 4.19 129/323] netfilter: nf_tables: incorrect error path handling with NFT_MSG_NEWRULE Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 130/323] netfilter: nf_tables: add NFT_TRANS_PREPARE_ERROR to deal with bound set/chain Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 131/323] netfilter: nf_tables: reject unbound anonymous set before commit phase Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 132/323] netfilter: nf_tables: unbind non-anonymous set if rule construction fails Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 133/323] netfilter: nf_tables: fix scheduling-while-atomic splat Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 134/323] netfilter: conntrack: Avoid nf_ct_helper_hash uses after free Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 135/323] netfilter: nf_tables: prevent OOB access in nft_byteorder_eval Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 136/323] net: lan743x: Dont sleep in atomic context Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 137/323] workqueue: clean up WORK_* constant types, clarify masking Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 138/323] net: mvneta: fix txq_map in case of txq_number==1 Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 139/323] vrf: Increment Icmp6InMsgs on the original netdev Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 140/323] icmp6: Fix null-ptr-deref of ip6_null_entry->rt6i_idev in icmp6_dev() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 141/323] udp6: fix udp6_ehashfn() typo Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 142/323] ntb: idt: Fix error handling in idt_pci_driver_init() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 143/323] NTB: amd: Fix error handling in amd_ntb_pci_driver_init() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 144/323] ntb: intel: Fix error handling in intel_ntb_pci_driver_init() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 145/323] NTB: ntb_transport: fix possible memory leak while device_register() fails Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 146/323] NTB: ntb_tool: Add check for devm_kcalloc Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 147/323] ipv6/addrconf: fix a potential refcount underflow for idev Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 148/323] wifi: airo: avoid uninitialized warning in airo_get_rate() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 149/323] net/sched: make psched_mtu() RTNL-less safe Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 150/323] pinctrl: amd: Fix mistake in handling clearing pins at startup Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 151/323] pinctrl: amd: Detect internal GPIO0 debounce handling Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 152/323] pinctrl: amd: Only use special debounce behavior for GPIO 0 Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 153/323] tpm: tpm_vtpm_proxy: fix a race condition in /dev/vtpmx creation Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 154/323] net: bcmgenet: Ensure MDIO unregistration has clocks enabled Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 155/323] SUNRPC: Fix UAF in svc_tcp_listen_data_ready() Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 156/323] perf intel-pt: Fix CYC timestamps after standalone CBR Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 157/323] ext4: fix wrong unit use in ext4_mb_clear_bb Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 158/323] ext4: only update i_reserved_data_blocks on successful block allocation Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 159/323] jfs: jfs_dmap: Validate db_l2nbperpage while mounting Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 160/323] PCI/PM: Avoid putting EloPOS E2/S2/H2 PCIe Ports in D3cold Greg Kroah-Hartman
2023-08-09 10:39 ` [PATCH 4.19 161/323] PCI: Add function 1 DMA alias quirk for Marvell 88SE9235 Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 162/323] PCI: qcom: Disable write access to read only registers for IP v2.3.3 Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 163/323] PCI: rockchip: Assert PCI Configuration Enable bit after probe Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 164/323] PCI: rockchip: Write PCI Device ID to correct register Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 165/323] PCI: rockchip: Add poll and timeout to wait for PHY PLLs to be locked Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 166/323] PCI: rockchip: Fix legacy IRQ generation for RK3399 PCIe endpoint core Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 167/323] PCI: rockchip: Use u32 variable to access 32-bit registers Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 168/323] misc: pci_endpoint_test: Free IRQs before removing the device Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 169/323] misc: pci_endpoint_test: Re-init completion for every test Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 170/323] md/raid0: add discard support for the original layout Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 171/323] fs: dlm: return positive pid value for F_GETLK Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 172/323] serial: atmel: dont enable IRQs prematurely Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 173/323] hwrng: imx-rngc - fix the timeout for init and self check Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 174/323] ceph: dont let check_caps skip sending responses for revoke msgs Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 175/323] meson saradc: fix clock divider mask length Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 176/323] Revert "8250: add support for ASIX devices with a FIFO bug" Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 177/323] tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() in case of error Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 178/323] tty: serial: samsung_tty: Fix a memory leak in s3c24xx_serial_getclk() when iterating clk Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 179/323] ring-buffer: Fix deadloop issue on reading trace_pipe Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 180/323] xtensa: ISS: fix call to split_if_spec Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 181/323] scsi: qla2xxx: Wait for io return on terminate rport Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 182/323] scsi: qla2xxx: Fix potential NULL pointer dereference Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 183/323] scsi: qla2xxx: Check valid rport returned by fc_bsg_to_rport() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 184/323] scsi: qla2xxx: Pointer may be dereferenced Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 185/323] drm/atomic: Fix potential use-after-free in nonblocking commits Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 186/323] tracing/histograms: Add histograms to hist_vars if they have referenced variables Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 187/323] perf probe: Add test for regression introduced by switch to die_get_decl_file() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 188/323] fuse: revalidate: dont invalidate if interrupted Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 189/323] can: bcm: Fix UAF in bcm_proc_show() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 190/323] ext4: correct inline offset when handling xattrs in inode body Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 191/323] debugobjects: Recheck debug_objects_enabled before reporting Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 192/323] nbd: Add the maximum limit of allocated index in nbd_dev_add Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 193/323] md: fix data corruption for raid456 when reshape restart while grow up Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 194/323] md/raid10: prevent soft lockup while flush writes Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 195/323] posix-timers: Ensure timer ID search-loop limit is valid Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 196/323] sched/fair: Dont balance task to its current running CPU Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 197/323] bpf: Address KCSAN report on bpf_lru_list Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 198/323] wifi: wext-core: Fix -Wstringop-overflow warning in ioctl_standard_iw_point() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 199/323] wifi: iwlwifi: mvm: avoid baid size integer overflow Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 200/323] igb: Fix igb_down hung on surprise removal Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 201/323] spi: bcm63xx: fix max prepend length Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 202/323] fbdev: imxfb: warn about invalid left/right margin Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 203/323] pinctrl: amd: Use amd_pinconf_set() for all config options Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 204/323] net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 205/323] net:ipv6: check return value of pskb_trim() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 206/323] Revert "tcp: avoid the lookup process failing to get sk in ehash table" Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 207/323] fbdev: au1200fb: Fix missing IRQ check in au1200fb_drv_probe Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 208/323] llc: Dont drop packet from non-root netns Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 209/323] netfilter: nf_tables: fix spurious set element insertion failure Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 210/323] netfilter: nf_tables: cant schedule in nft_chain_validate Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 211/323] net: Replace the limit of TCP_LINGER2 with TCP_FIN_TIMEOUT_MAX Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 212/323] tcp: annotate data-races around tp->linger2 Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 213/323] tcp: annotate data-races around rskq_defer_accept Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 214/323] tcp: annotate data-races around tp->notsent_lowat Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 215/323] tcp: annotate data-races around fastopenq.max_qlen Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 216/323] tracing/histograms: Return an error if we fail to add histogram to hist_vars list Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 217/323] gpio: tps68470: Make tps68470_gpio_output() always set the initial value Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 218/323] bcache: use MAX_CACHES_PER_SET instead of magic number 8 in __bch_bucket_alloc_set Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 219/323] bcache: remove int n from parameter list of bch_bucket_alloc_set() Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 220/323] bcache: Fix __bch_btree_node_alloc to make the failure behavior consistent Greg Kroah-Hartman
2023-08-09 10:40 ` [PATCH 4.19 221/323] btrfs: fix extent buffer leak after tree mod log failure at split_node() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 222/323] ext4: rename journal_dev to s_journal_dev inside ext4_sb_info Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 223/323] ext4: Fix reusing stale buffer heads from last failed mounting Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 224/323] PCI: Rework pcie_retrain_link() wait loop Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 225/323] PCI/ASPM: Return 0 or -ETIMEDOUT from pcie_retrain_link() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 226/323] PCI/ASPM: Factor out pcie_wait_for_retrain() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 227/323] PCI/ASPM: Avoid link retraining race Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 228/323] dlm: cleanup plock_op vs plock_xop Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 229/323] dlm: rearrange async condition return Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 230/323] fs: dlm: interrupt posix locks only when process is killed Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 231/323] ftrace: Add information on number of page groups allocated Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 232/323] ftrace: Check if pages were allocated before calling free_pages() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 233/323] ftrace: Store the order of pages allocated in ftrace_page Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 234/323] ftrace: Fix possible warning on checking all pages used in ftrace_process_locs() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 235/323] scsi: qla2xxx: Fix inconsistent format argument type in qla_os.c Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 236/323] scsi: qla2xxx: Array index may go out of bound Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 237/323] ext4: fix to check return value of freeze_bdev() in ext4_shutdown() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 238/323] i40e: Fix an NULL vs IS_ERR() bug for debugfs_create_dir() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 239/323] phy: hisilicon: Fix an out of bounds check in hisi_inno_phy_probe() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 240/323] ethernet: atheros: fix return value check in atl1e_tso_csum() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 241/323] ipv6 addrconf: fix bug where deleting a mngtmpaddr can create a new temporary address Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 242/323] tcp: Reduce chance of collisions in inet6_hashfn() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 243/323] bonding: reset bonds flags when down link is P2P device Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 244/323] team: reset teams " Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 245/323] platform/x86: msi-laptop: Fix rfkill out-of-sync on MSI Wind U100 Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 246/323] net/sched: mqprio: refactor nlattr parsing to a separate function Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 247/323] net/sched: mqprio: add extack to mqprio_parse_nlattr() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 248/323] net/sched: mqprio: Add length check for TCA_MQPRIO_{MAX/MIN}_RATE64 Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 249/323] benet: fix return value check in be_lancer_xmit_workarounds() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 250/323] RDMA/mlx4: Make check for invalid flags stricter Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 251/323] drm/msm: Fix IS_ERR_OR_NULL() vs NULL check in a5xx_submit_in_rb() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 252/323] ASoC: fsl_spdif: Silence output on stop Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 253/323] block: Fix a source code comment in include/uapi/linux/blkzoned.h Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 254/323] dm raid: fix missing reconfig_mutex unlock in raid_ctr() error paths Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 255/323] ata: pata_ns87415: mark ns87560_tf_read static Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 256/323] ring-buffer: Fix wrong stat of cpu_buffer->read Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 257/323] tracing: Fix warning in trace_buffered_event_disable() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 258/323] USB: serial: option: support Quectel EM060K_128 Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 259/323] USB: serial: option: add Quectel EC200A module support Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 260/323] USB: serial: simple: add Kaufmann RKS+CAN VCP Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 261/323] USB: serial: simple: sort driver entries Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 262/323] can: gs_usb: gs_can_close(): add missing set of CAN state to CAN_STATE_STOPPED Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 263/323] Revert "usb: dwc3: core: Enable AutoRetry feature in the controller" Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 264/323] usb: dwc3: pci: skip BYT GPIO lookup table for hardwired phy Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 265/323] usb: dwc3: dont reset device side if dwc3 was configured as host-only Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 266/323] usb: ohci-at91: Fix the unhandle interrupt when resume Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 267/323] USB: quirks: add quirk for Focusrite Scarlett Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 268/323] usb: xhci-mtk: set the dma max_seg_size Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 269/323] Documentation: security-bugs.rst: update preferences when dealing with the linux-distros group Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 270/323] Documentation: security-bugs.rst: clarify CVE handling Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 271/323] staging: ks7010: potential buffer overflow in ks_wlan_set_encode_ext() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 272/323] hwmon: (nct7802) Fix for temp6 (PECI1) processed even if PECI1 disabled Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 273/323] btrfs: check for commit error at btrfs_attach_transaction_barrier() Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 274/323] tpm_tis: Explicitly check for error code Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 275/323] irq-bcm6345-l1: Do not assume a fixed block to cpu mapping Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 276/323] serial: 8250_dw: split Synopsys DesignWare 8250 common functions Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 277/323] serial: 8250_dw: Preserve original value of DLF register Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 278/323] virtio-net: fix race between set queues and probe Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 279/323] s390/dasd: fix hanging device after quiesce/resume Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 280/323] ASoC: wm8904: Fill the cache for WM8904_ADC_TEST_0 register Greg Kroah-Hartman
2023-08-09 10:41 ` [PATCH 4.19 281/323] dm cache policy smq: ensure IO doesnt prevent cleaner policy progress Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 282/323] drm/client: Fix memory leak in drm_client_target_cloned Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 283/323] net/sched: cls_fw: Fix improper refcount update leads to use-after-free Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 284/323] net/sched: sch_qfq: account for stab overhead in qfq_enqueue Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 285/323] ASoC: cs42l51: fix driver to properly autoload with automatic module loading Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 286/323] net/sched: cls_u32: Fix reference counter leak leading to overflow Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 287/323] perf: Fix function pointer case Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 288/323] loop: Select I/O scheduler none from inside add_disk() Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 289/323] word-at-a-time: use the same return type for has_zero regardless of endianness Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 290/323] KVM: s390: fix sthyi error handling Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 291/323] net/mlx5e: fix return value check in mlx5e_ipsec_remove_trailer() Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 292/323] perf test uprobe_from_different_cu: Skip if there is no gcc Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 293/323] net: sched: cls_u32: Fix match key mis-addressing Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 294/323] net: add missing data-race annotations around sk->sk_peek_off Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 295/323] net: add missing data-race annotation for sk_ll_usec Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 296/323] net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-free Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 297/323] net/sched: cls_route: " Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 298/323] ip6mr: Fix skb_under_panic in ip6mr_cache_report() Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 299/323] tcp_metrics: fix addr_same() helper Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 300/323] tcp_metrics: annotate data-races around tm->tcpm_stamp Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 301/323] tcp_metrics: annotate data-races around tm->tcpm_lock Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 302/323] tcp_metrics: annotate data-races around tm->tcpm_vals[] Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 303/323] tcp_metrics: annotate data-races around tm->tcpm_net Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 304/323] tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 305/323] scsi: zfcp: Defer fc_rport blocking until after ADISC response Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 306/323] libceph: fix potential hang in ceph_osdc_notify() Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 307/323] USB: zaurus: Add ID for A-300/B-500/C-700 Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 308/323] fs/sysv: Null check to prevent null-ptr-deref bug Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 309/323] Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 310/323] net: usbnet: Fix WARNING in usbnet_start_xmit/usb_submit_urb Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 311/323] ext2: Drop fragment support Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 312/323] test_firmware: fix a memory leak with reqs buffer Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 313/323] test_firmware: return ENOMEM instead of ENOSPC on failed memory allocation Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 314/323] mtd: rawnand: omap_elm: Fix incorrect type in assignment Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 315/323] powerpc/mm/altmap: Fix altmap boundary check Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 316/323] PM / wakeirq: support enabling wake-up irq after runtime_suspend called Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 317/323] PM: sleep: wakeirq: fix wake irq arming Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 318/323] ARM: dts: imx6sll: Make ssi node name same as other platforms Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 319/323] ARM: dts: imx: add usb alias Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 320/323] ARM: dts: imx6sll: fixup of operating points Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 321/323] ARM: dts: nxp/imx6sll: fix wrong property name in usbphy node Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 322/323] drivers core: Use sysfs_emit and sysfs_emit_at for show(device *...) functions Greg Kroah-Hartman
2023-09-24 22:40 ` Ben Hutchings
2023-10-07 11:22 ` Greg Kroah-Hartman
2023-08-09 10:42 ` [PATCH 4.19 323/323] arm64: dts: stratix10: fix incorrect I2C property for SCL signal Greg Kroah-Hartman
2023-08-10 6:53 ` [PATCH 4.19 000/323] 4.19.291-rc1 review Thierry Reding
2023-08-10 13:55 ` Guenter Roeck
2023-08-10 14:24 ` Guenter Roeck
2023-08-11 9:29 ` Greg Kroah-Hartman
2023-08-11 14:51 ` Greg Kroah-Hartman
2023-08-10 16:00 ` Guenter Roeck
2023-08-10 19:28 ` Daniel Díaz
2023-08-10 19:36 ` Linus Torvalds
2023-08-10 19:59 ` Greg Kroah-Hartman
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=20230809103703.976696696@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).