From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
Zhengchao Shao <shaozhengchao@huawei.com>,
Jamal Hadi Salim <jhs@mojatatu.com>,
"David S. Miller" <davem@davemloft.net>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 247/392] net: sched: act: move global static variable net_id to tc_action_ops
Date: Wed, 3 Dec 2025 16:26:37 +0100 [thread overview]
Message-ID: <20251203152423.260831419@linuxfoundation.org> (raw)
In-Reply-To: <20251203152414.082328008@linuxfoundation.org>
5.15-stable review patch. If anyone has any objections, please let me know.
------------------
From: Zhengchao Shao <shaozhengchao@huawei.com>
[ Upstream commit acd0a7ab6334f35c3720120d53f79eb8e9b3ac2e ]
Each tc action module has a corresponding net_id, so put net_id directly
into the structure tc_action_ops.
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Stable-dep-of: 62b656e43eae ("net: sched: act_connmark: initialize struct tc_ife to fix kernel leak")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/net/act_api.h | 1 +
net/sched/act_bpf.c | 13 ++++++-------
net/sched/act_connmark.c | 13 ++++++-------
net/sched/act_csum.c | 13 ++++++-------
net/sched/act_ct.c | 17 ++++++++---------
net/sched/act_ctinfo.c | 13 ++++++-------
net/sched/act_gact.c | 13 ++++++-------
net/sched/act_gate.c | 13 ++++++-------
net/sched/act_ife.c | 13 ++++++-------
net/sched/act_ipt.c | 31 ++++++++++++++-----------------
net/sched/act_mirred.c | 13 ++++++-------
net/sched/act_mpls.c | 13 ++++++-------
net/sched/act_nat.c | 13 ++++++-------
net/sched/act_pedit.c | 13 ++++++-------
net/sched/act_police.c | 13 ++++++-------
net/sched/act_sample.c | 13 ++++++-------
net/sched/act_simple.c | 13 ++++++-------
net/sched/act_skbedit.c | 13 ++++++-------
net/sched/act_skbmod.c | 13 ++++++-------
net/sched/act_tunnel_key.c | 13 ++++++-------
net/sched/act_vlan.c | 13 ++++++-------
21 files changed, 131 insertions(+), 152 deletions(-)
diff --git a/include/net/act_api.h b/include/net/act_api.h
index f19f7f4a463cd..5cd184ae91cc6 100644
--- a/include/net/act_api.h
+++ b/include/net/act_api.h
@@ -99,6 +99,7 @@ struct tc_action_ops {
struct list_head head;
char kind[IFNAMSIZ];
enum tca_id id; /* identifier should match kind */
+ unsigned int net_id;
size_t size;
struct module *owner;
int (*act)(struct sk_buff *, const struct tc_action *,
diff --git a/net/sched/act_bpf.c b/net/sched/act_bpf.c
index 2a05bad56ef3e..5576eb97d39e0 100644
--- a/net/sched/act_bpf.c
+++ b/net/sched/act_bpf.c
@@ -29,7 +29,6 @@ struct tcf_bpf_cfg {
bool is_ebpf;
};
-static unsigned int bpf_net_id;
static struct tc_action_ops act_bpf_ops;
static int tcf_bpf_act(struct sk_buff *skb, const struct tc_action *act,
@@ -278,7 +277,7 @@ static int tcf_bpf_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, bpf_net_id);
+ struct tc_action_net *tn = net_generic(net, act_bpf_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_ACT_BPF_MAX + 1];
struct tcf_chain *goto_ch = NULL;
@@ -393,14 +392,14 @@ static int tcf_bpf_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, bpf_net_id);
+ struct tc_action_net *tn = net_generic(net, act_bpf_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_bpf_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, bpf_net_id);
+ struct tc_action_net *tn = net_generic(net, act_bpf_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -420,20 +419,20 @@ static struct tc_action_ops act_bpf_ops __read_mostly = {
static __net_init int bpf_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, bpf_net_id);
+ struct tc_action_net *tn = net_generic(net, act_bpf_ops.net_id);
return tc_action_net_init(net, tn, &act_bpf_ops);
}
static void __net_exit bpf_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, bpf_net_id);
+ tc_action_net_exit(net_list, act_bpf_ops.net_id);
}
static struct pernet_operations bpf_net_ops = {
.init = bpf_init_net,
.exit_batch = bpf_exit_net,
- .id = &bpf_net_id,
+ .id = &act_bpf_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_connmark.c b/net/sched/act_connmark.c
index 0deb4e96a6c2e..16b3d56ef2f43 100644
--- a/net/sched/act_connmark.c
+++ b/net/sched/act_connmark.c
@@ -25,7 +25,6 @@
#include <net/netfilter/nf_conntrack_core.h>
#include <net/netfilter/nf_conntrack_zones.h>
-static unsigned int connmark_net_id;
static struct tc_action_ops act_connmark_ops;
static int tcf_connmark_act(struct sk_buff *skb, const struct tc_action *a,
@@ -99,7 +98,7 @@ static int tcf_connmark_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, connmark_net_id);
+ struct tc_action_net *tn = net_generic(net, act_connmark_ops.net_id);
struct nlattr *tb[TCA_CONNMARK_MAX + 1];
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct tcf_chain *goto_ch = NULL;
@@ -205,14 +204,14 @@ static int tcf_connmark_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, connmark_net_id);
+ struct tc_action_net *tn = net_generic(net, act_connmark_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_connmark_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, connmark_net_id);
+ struct tc_action_net *tn = net_generic(net, act_connmark_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -231,20 +230,20 @@ static struct tc_action_ops act_connmark_ops = {
static __net_init int connmark_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, connmark_net_id);
+ struct tc_action_net *tn = net_generic(net, act_connmark_ops.net_id);
return tc_action_net_init(net, tn, &act_connmark_ops);
}
static void __net_exit connmark_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, connmark_net_id);
+ tc_action_net_exit(net_list, act_connmark_ops.net_id);
}
static struct pernet_operations connmark_net_ops = {
.init = connmark_init_net,
.exit_batch = connmark_exit_net,
- .id = &connmark_net_id,
+ .id = &act_connmark_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_csum.c b/net/sched/act_csum.c
index a15ec95e69c36..2f2fb0f7cc714 100644
--- a/net/sched/act_csum.c
+++ b/net/sched/act_csum.c
@@ -37,7 +37,6 @@ static const struct nla_policy csum_policy[TCA_CSUM_MAX + 1] = {
[TCA_CSUM_PARMS] = { .len = sizeof(struct tc_csum), },
};
-static unsigned int csum_net_id;
static struct tc_action_ops act_csum_ops;
static int tcf_csum_init(struct net *net, struct nlattr *nla,
@@ -45,7 +44,7 @@ static int tcf_csum_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp,
u32 flags, struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, csum_net_id);
+ struct tc_action_net *tn = net_generic(net, act_csum_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct tcf_csum_params *params_new;
struct nlattr *tb[TCA_CSUM_MAX + 1];
@@ -678,14 +677,14 @@ static int tcf_csum_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, csum_net_id);
+ struct tc_action_net *tn = net_generic(net, act_csum_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_csum_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, csum_net_id);
+ struct tc_action_net *tn = net_generic(net, act_csum_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -711,20 +710,20 @@ static struct tc_action_ops act_csum_ops = {
static __net_init int csum_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, csum_net_id);
+ struct tc_action_net *tn = net_generic(net, act_csum_ops.net_id);
return tc_action_net_init(net, tn, &act_csum_ops);
}
static void __net_exit csum_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, csum_net_id);
+ tc_action_net_exit(net_list, act_csum_ops.net_id);
}
static struct pernet_operations csum_net_ops = {
.init = csum_init_net,
.exit_batch = csum_exit_net,
- .id = &csum_net_id,
+ .id = &act_csum_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index a6c3b7145a105..d50977ef83c67 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -574,7 +574,6 @@ static void tcf_ct_flow_tables_uninit(void)
}
static struct tc_action_ops act_ct_ops;
-static unsigned int ct_net_id;
struct tc_ct_action_net {
struct tc_action_net tn; /* Must be first */
@@ -1184,7 +1183,7 @@ static int tcf_ct_fill_params(struct net *net,
struct nlattr **tb,
struct netlink_ext_ack *extack)
{
- struct tc_ct_action_net *tn = net_generic(net, ct_net_id);
+ struct tc_ct_action_net *tn = net_generic(net, act_ct_ops.net_id);
struct nf_conntrack_zone zone;
struct nf_conn *tmpl;
int err;
@@ -1259,7 +1258,7 @@ static int tcf_ct_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, ct_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ct_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct tcf_ct_params *params = NULL;
struct nlattr *tb[TCA_CT_MAX + 1];
@@ -1495,14 +1494,14 @@ static int tcf_ct_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, ct_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ct_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_ct_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, ct_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ct_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -1533,7 +1532,7 @@ static struct tc_action_ops act_ct_ops = {
static __net_init int ct_init_net(struct net *net)
{
unsigned int n_bits = sizeof_field(struct tcf_ct_params, labels) * 8;
- struct tc_ct_action_net *tn = net_generic(net, ct_net_id);
+ struct tc_ct_action_net *tn = net_generic(net, act_ct_ops.net_id);
if (nf_connlabels_get(net, n_bits - 1)) {
tn->labels = false;
@@ -1551,20 +1550,20 @@ static void __net_exit ct_exit_net(struct list_head *net_list)
rtnl_lock();
list_for_each_entry(net, net_list, exit_list) {
- struct tc_ct_action_net *tn = net_generic(net, ct_net_id);
+ struct tc_ct_action_net *tn = net_generic(net, act_ct_ops.net_id);
if (tn->labels)
nf_connlabels_put(net);
}
rtnl_unlock();
- tc_action_net_exit(net_list, ct_net_id);
+ tc_action_net_exit(net_list, act_ct_ops.net_id);
}
static struct pernet_operations ct_net_ops = {
.init = ct_init_net,
.exit_batch = ct_exit_net,
- .id = &ct_net_id,
+ .id = &act_ct_ops.net_id,
.size = sizeof(struct tc_ct_action_net),
};
diff --git a/net/sched/act_ctinfo.c b/net/sched/act_ctinfo.c
index ddacd4fa442c6..dd6347c4d4eb2 100644
--- a/net/sched/act_ctinfo.c
+++ b/net/sched/act_ctinfo.c
@@ -25,7 +25,6 @@
#include <net/netfilter/nf_conntrack_zones.h>
static struct tc_action_ops act_ctinfo_ops;
-static unsigned int ctinfo_net_id;
static void tcf_ctinfo_dscp_set(struct nf_conn *ct, struct tcf_ctinfo *ca,
struct tcf_ctinfo_params *cp,
@@ -157,7 +156,7 @@ static int tcf_ctinfo_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, ctinfo_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ctinfo_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
u32 dscpmask = 0, dscpstatemask, index;
struct nlattr *tb[TCA_CTINFO_MAX + 1];
@@ -350,14 +349,14 @@ static int tcf_ctinfo_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, ctinfo_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ctinfo_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_ctinfo_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, ctinfo_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ctinfo_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -387,20 +386,20 @@ static struct tc_action_ops act_ctinfo_ops = {
static __net_init int ctinfo_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, ctinfo_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ctinfo_ops.net_id);
return tc_action_net_init(net, tn, &act_ctinfo_ops);
}
static void __net_exit ctinfo_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, ctinfo_net_id);
+ tc_action_net_exit(net_list, act_ctinfo_ops.net_id);
}
static struct pernet_operations ctinfo_net_ops = {
.init = ctinfo_init_net,
.exit_batch = ctinfo_exit_net,
- .id = &ctinfo_net_id,
+ .id = &act_ctinfo_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_gact.c b/net/sched/act_gact.c
index d8dce173df374..82148ca7d7541 100644
--- a/net/sched/act_gact.c
+++ b/net/sched/act_gact.c
@@ -19,7 +19,6 @@
#include <linux/tc_act/tc_gact.h>
#include <net/tc_act/tc_gact.h>
-static unsigned int gact_net_id;
static struct tc_action_ops act_gact_ops;
#ifdef CONFIG_GACT_PROB
@@ -55,7 +54,7 @@ static int tcf_gact_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, gact_net_id);
+ struct tc_action_net *tn = net_generic(net, act_gact_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_GACT_MAX + 1];
struct tcf_chain *goto_ch = NULL;
@@ -227,14 +226,14 @@ static int tcf_gact_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, gact_net_id);
+ struct tc_action_net *tn = net_generic(net, act_gact_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_gact_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, gact_net_id);
+ struct tc_action_net *tn = net_generic(net, act_gact_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -268,20 +267,20 @@ static struct tc_action_ops act_gact_ops = {
static __net_init int gact_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, gact_net_id);
+ struct tc_action_net *tn = net_generic(net, act_gact_ops.net_id);
return tc_action_net_init(net, tn, &act_gact_ops);
}
static void __net_exit gact_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, gact_net_id);
+ tc_action_net_exit(net_list, act_gact_ops.net_id);
}
static struct pernet_operations gact_net_ops = {
.init = gact_init_net,
.exit_batch = gact_exit_net,
- .id = &gact_net_id,
+ .id = &act_gact_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_gate.c b/net/sched/act_gate.c
index ac985c53ebafe..12b8fdbd9df1f 100644
--- a/net/sched/act_gate.c
+++ b/net/sched/act_gate.c
@@ -15,7 +15,6 @@
#include <net/pkt_cls.h>
#include <net/tc_act/tc_gate.h>
-static unsigned int gate_net_id;
static struct tc_action_ops act_gate_ops;
static ktime_t gate_get_time(struct tcf_gate *gact)
@@ -298,7 +297,7 @@ static int tcf_gate_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, gate_net_id);
+ struct tc_action_net *tn = net_generic(net, act_gate_ops.net_id);
enum tk_offsets tk_offset = TK_OFFS_TAI;
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_GATE_MAX + 1];
@@ -570,7 +569,7 @@ static int tcf_gate_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, gate_net_id);
+ struct tc_action_net *tn = net_generic(net, act_gate_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
@@ -587,7 +586,7 @@ static void tcf_gate_stats_update(struct tc_action *a, u64 bytes, u64 packets,
static int tcf_gate_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, gate_net_id);
+ struct tc_action_net *tn = net_generic(net, act_gate_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -614,20 +613,20 @@ static struct tc_action_ops act_gate_ops = {
static __net_init int gate_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, gate_net_id);
+ struct tc_action_net *tn = net_generic(net, act_gate_ops.net_id);
return tc_action_net_init(net, tn, &act_gate_ops);
}
static void __net_exit gate_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, gate_net_id);
+ tc_action_net_exit(net_list, act_gate_ops.net_id);
}
static struct pernet_operations gate_net_ops = {
.init = gate_init_net,
.exit_batch = gate_exit_net,
- .id = &gate_net_id,
+ .id = &act_gate_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c
index ec987ec758070..ca53783ea0c4d 100644
--- a/net/sched/act_ife.c
+++ b/net/sched/act_ife.c
@@ -30,7 +30,6 @@
#include <linux/etherdevice.h>
#include <net/ife.h>
-static unsigned int ife_net_id;
static int max_metacnt = IFE_META_MAX + 1;
static struct tc_action_ops act_ife_ops;
@@ -482,7 +481,7 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, ife_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ife_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_IFE_MAX + 1];
struct nlattr *tb2[IFE_META_MAX + 1];
@@ -883,14 +882,14 @@ static int tcf_ife_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, ife_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ife_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_ife_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, ife_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ife_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -910,20 +909,20 @@ static struct tc_action_ops act_ife_ops = {
static __net_init int ife_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, ife_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ife_ops.net_id);
return tc_action_net_init(net, tn, &act_ife_ops);
}
static void __net_exit ife_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, ife_net_id);
+ tc_action_net_exit(net_list, act_ife_ops.net_id);
}
static struct pernet_operations ife_net_ops = {
.init = ife_init_net,
.exit_batch = ife_exit_net,
- .id = &ife_net_id,
+ .id = &act_ife_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_ipt.c b/net/sched/act_ipt.c
index ebd403f571ea5..6f04b35eb6539 100644
--- a/net/sched/act_ipt.c
+++ b/net/sched/act_ipt.c
@@ -24,10 +24,7 @@
#include <linux/netfilter_ipv4/ip_tables.h>
-static unsigned int ipt_net_id;
static struct tc_action_ops act_ipt_ops;
-
-static unsigned int xt_net_id;
static struct tc_action_ops act_xt_ops;
static int ipt_init_target(struct net *net, struct xt_entry_target *t,
@@ -219,8 +216,8 @@ static int tcf_ipt_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp,
u32 flags, struct netlink_ext_ack *extack)
{
- return __tcf_ipt_init(net, ipt_net_id, nla, est, a, &act_ipt_ops,
- tp, flags);
+ return __tcf_ipt_init(net, act_ipt_ops.net_id, nla, est,
+ a, &act_ipt_ops, tp, flags);
}
static int tcf_xt_init(struct net *net, struct nlattr *nla,
@@ -228,8 +225,8 @@ static int tcf_xt_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp,
u32 flags, struct netlink_ext_ack *extack)
{
- return __tcf_ipt_init(net, xt_net_id, nla, est, a, &act_xt_ops,
- tp, flags);
+ return __tcf_ipt_init(net, act_xt_ops.net_id, nla, est,
+ a, &act_xt_ops, tp, flags);
}
static int tcf_ipt_act(struct sk_buff *skb, const struct tc_action *a,
@@ -334,14 +331,14 @@ static int tcf_ipt_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, ipt_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ipt_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_ipt_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, ipt_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ipt_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -361,20 +358,20 @@ static struct tc_action_ops act_ipt_ops = {
static __net_init int ipt_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, ipt_net_id);
+ struct tc_action_net *tn = net_generic(net, act_ipt_ops.net_id);
return tc_action_net_init(net, tn, &act_ipt_ops);
}
static void __net_exit ipt_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, ipt_net_id);
+ tc_action_net_exit(net_list, act_ipt_ops.net_id);
}
static struct pernet_operations ipt_net_ops = {
.init = ipt_init_net,
.exit_batch = ipt_exit_net,
- .id = &ipt_net_id,
+ .id = &act_ipt_ops.net_id,
.size = sizeof(struct tc_action_net),
};
@@ -383,14 +380,14 @@ static int tcf_xt_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, xt_net_id);
+ struct tc_action_net *tn = net_generic(net, act_xt_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_xt_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, xt_net_id);
+ struct tc_action_net *tn = net_generic(net, act_xt_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -410,20 +407,20 @@ static struct tc_action_ops act_xt_ops = {
static __net_init int xt_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, xt_net_id);
+ struct tc_action_net *tn = net_generic(net, act_xt_ops.net_id);
return tc_action_net_init(net, tn, &act_xt_ops);
}
static void __net_exit xt_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, xt_net_id);
+ tc_action_net_exit(net_list, act_xt_ops.net_id);
}
static struct pernet_operations xt_net_ops = {
.init = xt_init_net,
.exit_batch = xt_exit_net,
- .id = &xt_net_id,
+ .id = &act_xt_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c
index 1aa1d10de30e4..1daa1622c6a0b 100644
--- a/net/sched/act_mirred.c
+++ b/net/sched/act_mirred.c
@@ -86,7 +86,6 @@ static const struct nla_policy mirred_policy[TCA_MIRRED_MAX + 1] = {
[TCA_MIRRED_PARMS] = { .len = sizeof(struct tc_mirred) },
};
-static unsigned int mirred_net_id;
static struct tc_action_ops act_mirred_ops;
static int tcf_mirred_init(struct net *net, struct nlattr *nla,
@@ -94,7 +93,7 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp,
u32 flags, struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, mirred_net_id);
+ struct tc_action_net *tn = net_generic(net, act_mirred_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_MIRRED_MAX + 1];
struct tcf_chain *goto_ch = NULL;
@@ -387,14 +386,14 @@ static int tcf_mirred_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, mirred_net_id);
+ struct tc_action_net *tn = net_generic(net, act_mirred_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_mirred_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, mirred_net_id);
+ struct tc_action_net *tn = net_generic(net, act_mirred_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -477,20 +476,20 @@ static struct tc_action_ops act_mirred_ops = {
static __net_init int mirred_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, mirred_net_id);
+ struct tc_action_net *tn = net_generic(net, act_mirred_ops.net_id);
return tc_action_net_init(net, tn, &act_mirred_ops);
}
static void __net_exit mirred_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, mirred_net_id);
+ tc_action_net_exit(net_list, act_mirred_ops.net_id);
}
static struct pernet_operations mirred_net_ops = {
.init = mirred_init_net,
.exit_batch = mirred_exit_net,
- .id = &mirred_net_id,
+ .id = &act_mirred_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_mpls.c b/net/sched/act_mpls.c
index d010c5b8e83b1..75a87a068c536 100644
--- a/net/sched/act_mpls.c
+++ b/net/sched/act_mpls.c
@@ -15,7 +15,6 @@
#include <net/pkt_cls.h>
#include <net/tc_act/tc_mpls.h>
-static unsigned int mpls_net_id;
static struct tc_action_ops act_mpls_ops;
#define ACT_MPLS_TTL_DEFAULT 255
@@ -161,7 +160,7 @@ static int tcf_mpls_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, mpls_net_id);
+ struct tc_action_net *tn = net_generic(net, act_mpls_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_MPLS_MAX + 1];
struct tcf_chain *goto_ch = NULL;
@@ -386,14 +385,14 @@ static int tcf_mpls_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, mpls_net_id);
+ struct tc_action_net *tn = net_generic(net, act_mpls_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_mpls_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, mpls_net_id);
+ struct tc_action_net *tn = net_generic(net, act_mpls_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -413,20 +412,20 @@ static struct tc_action_ops act_mpls_ops = {
static __net_init int mpls_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, mpls_net_id);
+ struct tc_action_net *tn = net_generic(net, act_mpls_ops.net_id);
return tc_action_net_init(net, tn, &act_mpls_ops);
}
static void __net_exit mpls_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, mpls_net_id);
+ tc_action_net_exit(net_list, act_mpls_ops.net_id);
}
static struct pernet_operations mpls_net_ops = {
.init = mpls_init_net,
.exit_batch = mpls_exit_net,
- .id = &mpls_net_id,
+ .id = &act_mpls_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_nat.c b/net/sched/act_nat.c
index 2a39b3729e844..f5810387ce9ae 100644
--- a/net/sched/act_nat.c
+++ b/net/sched/act_nat.c
@@ -26,7 +26,6 @@
#include <net/udp.h>
-static unsigned int nat_net_id;
static struct tc_action_ops act_nat_ops;
static const struct nla_policy nat_policy[TCA_NAT_MAX + 1] = {
@@ -37,7 +36,7 @@ static int tcf_nat_init(struct net *net, struct nlattr *nla, struct nlattr *est,
struct tc_action **a, struct tcf_proto *tp,
u32 flags, struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, nat_net_id);
+ struct tc_action_net *tn = net_generic(net, act_nat_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_NAT_MAX + 1];
struct tcf_chain *goto_ch = NULL;
@@ -294,14 +293,14 @@ static int tcf_nat_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, nat_net_id);
+ struct tc_action_net *tn = net_generic(net, act_nat_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_nat_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, nat_net_id);
+ struct tc_action_net *tn = net_generic(net, act_nat_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -320,20 +319,20 @@ static struct tc_action_ops act_nat_ops = {
static __net_init int nat_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, nat_net_id);
+ struct tc_action_net *tn = net_generic(net, act_nat_ops.net_id);
return tc_action_net_init(net, tn, &act_nat_ops);
}
static void __net_exit nat_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, nat_net_id);
+ tc_action_net_exit(net_list, act_nat_ops.net_id);
}
static struct pernet_operations nat_net_ops = {
.init = nat_init_net,
.exit_batch = nat_exit_net,
- .id = &nat_net_id,
+ .id = &act_nat_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_pedit.c b/net/sched/act_pedit.c
index df9ff123a7eec..d800e0285d5c2 100644
--- a/net/sched/act_pedit.c
+++ b/net/sched/act_pedit.c
@@ -24,7 +24,6 @@
#include <uapi/linux/tc_act/tc_pedit.h>
#include <net/pkt_cls.h>
-static unsigned int pedit_net_id;
static struct tc_action_ops act_pedit_ops;
static const struct nla_policy pedit_policy[TCA_PEDIT_MAX + 1] = {
@@ -154,7 +153,7 @@ static int tcf_pedit_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, pedit_net_id);
+ struct tc_action_net *tn = net_generic(net, act_pedit_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct tcf_chain *goto_ch = NULL;
struct tcf_pedit_parms *oparms, *nparms;
@@ -548,14 +547,14 @@ static int tcf_pedit_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, pedit_net_id);
+ struct tc_action_net *tn = net_generic(net, act_pedit_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_pedit_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, pedit_net_id);
+ struct tc_action_net *tn = net_generic(net, act_pedit_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -576,20 +575,20 @@ static struct tc_action_ops act_pedit_ops = {
static __net_init int pedit_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, pedit_net_id);
+ struct tc_action_net *tn = net_generic(net, act_pedit_ops.net_id);
return tc_action_net_init(net, tn, &act_pedit_ops);
}
static void __net_exit pedit_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, pedit_net_id);
+ tc_action_net_exit(net_list, act_pedit_ops.net_id);
}
static struct pernet_operations pedit_net_ops = {
.init = pedit_init_net,
.exit_batch = pedit_exit_net,
- .id = &pedit_net_id,
+ .id = &act_pedit_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_police.c b/net/sched/act_police.c
index db1d021c16be8..13878b0520f36 100644
--- a/net/sched/act_police.c
+++ b/net/sched/act_police.c
@@ -22,7 +22,6 @@
/* Each policer is serialized by its individual spinlock */
-static unsigned int police_net_id;
static struct tc_action_ops act_police_ops;
static int tcf_police_walker(struct net *net, struct sk_buff *skb,
@@ -30,7 +29,7 @@ static int tcf_police_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, police_net_id);
+ struct tc_action_net *tn = net_generic(net, act_police_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
@@ -58,7 +57,7 @@ static int tcf_police_init(struct net *net, struct nlattr *nla,
struct tc_police *parm;
struct tcf_police *police;
struct qdisc_rate_table *R_tab = NULL, *P_tab = NULL;
- struct tc_action_net *tn = net_generic(net, police_net_id);
+ struct tc_action_net *tn = net_generic(net, act_police_ops.net_id);
struct tcf_police_params *new;
bool exists = false;
u32 index;
@@ -414,7 +413,7 @@ static int tcf_police_dump(struct sk_buff *skb, struct tc_action *a,
static int tcf_police_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, police_net_id);
+ struct tc_action_net *tn = net_generic(net, act_police_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -439,20 +438,20 @@ static struct tc_action_ops act_police_ops = {
static __net_init int police_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, police_net_id);
+ struct tc_action_net *tn = net_generic(net, act_police_ops.net_id);
return tc_action_net_init(net, tn, &act_police_ops);
}
static void __net_exit police_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, police_net_id);
+ tc_action_net_exit(net_list, act_police_ops.net_id);
}
static struct pernet_operations police_net_ops = {
.init = police_init_net,
.exit_batch = police_exit_net,
- .id = &police_net_id,
+ .id = &act_police_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_sample.c b/net/sched/act_sample.c
index ca67d96449176..aa0b1215b58f4 100644
--- a/net/sched/act_sample.c
+++ b/net/sched/act_sample.c
@@ -23,7 +23,6 @@
#include <linux/if_arp.h>
-static unsigned int sample_net_id;
static struct tc_action_ops act_sample_ops;
static const struct nla_policy sample_policy[TCA_SAMPLE_MAX + 1] = {
@@ -38,7 +37,7 @@ static int tcf_sample_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp,
u32 flags, struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, sample_net_id);
+ struct tc_action_net *tn = net_generic(net, act_sample_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_SAMPLE_MAX + 1];
struct psample_group *psample_group;
@@ -253,14 +252,14 @@ static int tcf_sample_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, sample_net_id);
+ struct tc_action_net *tn = net_generic(net, act_sample_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_sample_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, sample_net_id);
+ struct tc_action_net *tn = net_generic(net, act_sample_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -306,20 +305,20 @@ static struct tc_action_ops act_sample_ops = {
static __net_init int sample_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, sample_net_id);
+ struct tc_action_net *tn = net_generic(net, act_sample_ops.net_id);
return tc_action_net_init(net, tn, &act_sample_ops);
}
static void __net_exit sample_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, sample_net_id);
+ tc_action_net_exit(net_list, act_sample_ops.net_id);
}
static struct pernet_operations sample_net_ops = {
.init = sample_init_net,
.exit_batch = sample_exit_net,
- .id = &sample_net_id,
+ .id = &act_sample_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_simple.c b/net/sched/act_simple.c
index 7885271540259..2188554dac8d8 100644
--- a/net/sched/act_simple.c
+++ b/net/sched/act_simple.c
@@ -18,7 +18,6 @@
#include <linux/tc_act/tc_defact.h>
#include <net/tc_act/tc_defact.h>
-static unsigned int simp_net_id;
static struct tc_action_ops act_simp_ops;
#define SIMP_MAX_DATA 32
@@ -88,7 +87,7 @@ static int tcf_simp_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, simp_net_id);
+ struct tc_action_net *tn = net_generic(net, act_simp_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_DEF_MAX + 1];
struct tcf_chain *goto_ch = NULL;
@@ -202,14 +201,14 @@ static int tcf_simp_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, simp_net_id);
+ struct tc_action_net *tn = net_generic(net, act_simp_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_simp_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, simp_net_id);
+ struct tc_action_net *tn = net_generic(net, act_simp_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -229,20 +228,20 @@ static struct tc_action_ops act_simp_ops = {
static __net_init int simp_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, simp_net_id);
+ struct tc_action_net *tn = net_generic(net, act_simp_ops.net_id);
return tc_action_net_init(net, tn, &act_simp_ops);
}
static void __net_exit simp_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, simp_net_id);
+ tc_action_net_exit(net_list, act_simp_ops.net_id);
}
static struct pernet_operations simp_net_ops = {
.init = simp_init_net,
.exit_batch = simp_exit_net,
- .id = &simp_net_id,
+ .id = &act_simp_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_skbedit.c b/net/sched/act_skbedit.c
index 6088ceaf582e8..0c91f88476baf 100644
--- a/net/sched/act_skbedit.c
+++ b/net/sched/act_skbedit.c
@@ -20,7 +20,6 @@
#include <linux/tc_act/tc_skbedit.h>
#include <net/tc_act/tc_skbedit.h>
-static unsigned int skbedit_net_id;
static struct tc_action_ops act_skbedit_ops;
static int tcf_skbedit_act(struct sk_buff *skb, const struct tc_action *a,
@@ -99,7 +98,7 @@ static int tcf_skbedit_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 act_flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, skbedit_net_id);
+ struct tc_action_net *tn = net_generic(net, act_skbedit_ops.net_id);
bool bind = act_flags & TCA_ACT_FLAGS_BIND;
struct tcf_skbedit_params *params_new;
struct nlattr *tb[TCA_SKBEDIT_MAX + 1];
@@ -304,14 +303,14 @@ static int tcf_skbedit_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, skbedit_net_id);
+ struct tc_action_net *tn = net_generic(net, act_skbedit_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_skbedit_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, skbedit_net_id);
+ struct tc_action_net *tn = net_generic(net, act_skbedit_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -344,20 +343,20 @@ static struct tc_action_ops act_skbedit_ops = {
static __net_init int skbedit_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, skbedit_net_id);
+ struct tc_action_net *tn = net_generic(net, act_skbedit_ops.net_id);
return tc_action_net_init(net, tn, &act_skbedit_ops);
}
static void __net_exit skbedit_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, skbedit_net_id);
+ tc_action_net_exit(net_list, act_skbedit_ops.net_id);
}
static struct pernet_operations skbedit_net_ops = {
.init = skbedit_init_net,
.exit_batch = skbedit_exit_net,
- .id = &skbedit_net_id,
+ .id = &act_skbedit_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_skbmod.c b/net/sched/act_skbmod.c
index d5b421072b998..37395ab1df472 100644
--- a/net/sched/act_skbmod.c
+++ b/net/sched/act_skbmod.c
@@ -19,7 +19,6 @@
#include <linux/tc_act/tc_skbmod.h>
#include <net/tc_act/tc_skbmod.h>
-static unsigned int skbmod_net_id;
static struct tc_action_ops act_skbmod_ops;
static int tcf_skbmod_act(struct sk_buff *skb, const struct tc_action *a,
@@ -103,7 +102,7 @@ static int tcf_skbmod_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, skbmod_net_id);
+ struct tc_action_net *tn = net_generic(net, act_skbmod_ops.net_id);
bool ovr = flags & TCA_ACT_FLAGS_REPLACE;
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_SKBMOD_MAX + 1];
@@ -281,14 +280,14 @@ static int tcf_skbmod_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, skbmod_net_id);
+ struct tc_action_net *tn = net_generic(net, act_skbmod_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tcf_skbmod_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, skbmod_net_id);
+ struct tc_action_net *tn = net_generic(net, act_skbmod_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -308,20 +307,20 @@ static struct tc_action_ops act_skbmod_ops = {
static __net_init int skbmod_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, skbmod_net_id);
+ struct tc_action_net *tn = net_generic(net, act_skbmod_ops.net_id);
return tc_action_net_init(net, tn, &act_skbmod_ops);
}
static void __net_exit skbmod_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, skbmod_net_id);
+ tc_action_net_exit(net_list, act_skbmod_ops.net_id);
}
static struct pernet_operations skbmod_net_ops = {
.init = skbmod_init_net,
.exit_batch = skbmod_exit_net,
- .id = &skbmod_net_id,
+ .id = &act_skbmod_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_tunnel_key.c b/net/sched/act_tunnel_key.c
index 64277ce3c5eb9..c79f23367dfb3 100644
--- a/net/sched/act_tunnel_key.c
+++ b/net/sched/act_tunnel_key.c
@@ -20,7 +20,6 @@
#include <linux/tc_act/tc_tunnel_key.h>
#include <net/tc_act/tc_tunnel_key.h>
-static unsigned int tunnel_key_net_id;
static struct tc_action_ops act_tunnel_key_ops;
static int tunnel_key_act(struct sk_buff *skb, const struct tc_action *a,
@@ -358,7 +357,7 @@ static int tunnel_key_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 act_flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, tunnel_key_net_id);
+ struct tc_action_net *tn = net_generic(net, act_tunnel_key_ops.net_id);
bool bind = act_flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_TUNNEL_KEY_MAX + 1];
struct tcf_tunnel_key_params *params_new;
@@ -775,14 +774,14 @@ static int tunnel_key_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, tunnel_key_net_id);
+ struct tc_action_net *tn = net_generic(net, act_tunnel_key_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
static int tunnel_key_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, tunnel_key_net_id);
+ struct tc_action_net *tn = net_generic(net, act_tunnel_key_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -802,20 +801,20 @@ static struct tc_action_ops act_tunnel_key_ops = {
static __net_init int tunnel_key_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, tunnel_key_net_id);
+ struct tc_action_net *tn = net_generic(net, act_tunnel_key_ops.net_id);
return tc_action_net_init(net, tn, &act_tunnel_key_ops);
}
static void __net_exit tunnel_key_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, tunnel_key_net_id);
+ tc_action_net_exit(net_list, act_tunnel_key_ops.net_id);
}
static struct pernet_operations tunnel_key_net_ops = {
.init = tunnel_key_init_net,
.exit_batch = tunnel_key_exit_net,
- .id = &tunnel_key_net_id,
+ .id = &act_tunnel_key_ops.net_id,
.size = sizeof(struct tc_action_net),
};
diff --git a/net/sched/act_vlan.c b/net/sched/act_vlan.c
index e4dc5a555bd85..61a38ae2064ce 100644
--- a/net/sched/act_vlan.c
+++ b/net/sched/act_vlan.c
@@ -16,7 +16,6 @@
#include <linux/tc_act/tc_vlan.h>
#include <net/tc_act/tc_vlan.h>
-static unsigned int vlan_net_id;
static struct tc_action_ops act_vlan_ops;
static int tcf_vlan_act(struct sk_buff *skb, const struct tc_action *a,
@@ -117,7 +116,7 @@ static int tcf_vlan_init(struct net *net, struct nlattr *nla,
struct tcf_proto *tp, u32 flags,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, vlan_net_id);
+ struct tc_action_net *tn = net_generic(net, act_vlan_ops.net_id);
bool bind = flags & TCA_ACT_FLAGS_BIND;
struct nlattr *tb[TCA_VLAN_MAX + 1];
struct tcf_chain *goto_ch = NULL;
@@ -338,7 +337,7 @@ static int tcf_vlan_walker(struct net *net, struct sk_buff *skb,
const struct tc_action_ops *ops,
struct netlink_ext_ack *extack)
{
- struct tc_action_net *tn = net_generic(net, vlan_net_id);
+ struct tc_action_net *tn = net_generic(net, act_vlan_ops.net_id);
return tcf_generic_walker(tn, skb, cb, type, ops, extack);
}
@@ -355,7 +354,7 @@ static void tcf_vlan_stats_update(struct tc_action *a, u64 bytes, u64 packets,
static int tcf_vlan_search(struct net *net, struct tc_action **a, u32 index)
{
- struct tc_action_net *tn = net_generic(net, vlan_net_id);
+ struct tc_action_net *tn = net_generic(net, act_vlan_ops.net_id);
return tcf_idr_search(tn, a, index);
}
@@ -385,20 +384,20 @@ static struct tc_action_ops act_vlan_ops = {
static __net_init int vlan_init_net(struct net *net)
{
- struct tc_action_net *tn = net_generic(net, vlan_net_id);
+ struct tc_action_net *tn = net_generic(net, act_vlan_ops.net_id);
return tc_action_net_init(net, tn, &act_vlan_ops);
}
static void __net_exit vlan_exit_net(struct list_head *net_list)
{
- tc_action_net_exit(net_list, vlan_net_id);
+ tc_action_net_exit(net_list, act_vlan_ops.net_id);
}
static struct pernet_operations vlan_net_ops = {
.init = vlan_init_net,
.exit_batch = vlan_exit_net,
- .id = &vlan_net_id,
+ .id = &act_vlan_ops.net_id,
.size = sizeof(struct tc_action_net),
};
--
2.51.0
next prev parent reply other threads:[~2025-12-03 16:08 UTC|newest]
Thread overview: 412+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-03 15:22 [PATCH 5.15 000/392] 5.15.197-rc1 review Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 001/392] net/sched: sch_qfq: Fix null-deref in agg_dequeue Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 002/392] x86/bugs: Fix reporting of LFENCE retpoline Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 003/392] btrfs: scrub: replace max_t()/min_t() with clamp() in scrub_throttle_dev_io() Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 004/392] btrfs: always drop log root tree reference in btrfs_replay_log() Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 005/392] btrfs: use smp_mb__after_atomic() when forcing COW in create_pending_snapshot() Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 006/392] NFSD: Fix crash in nfsd4_read_release() Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 007/392] net: usb: asix_devices: Check return value of usbnet_get_endpoints Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 008/392] fbdev: atyfb: Check if pll_ops->init_pll failed Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 009/392] ACPI: video: Fix use-after-free in acpi_video_switch_brightness() Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 010/392] fbdev: bitblit: bound-check glyph index in bit_putcs* Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 011/392] wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 012/392] fbdev: pvr2fb: Fix leftover reference to ONCHIP_NR_DMA_CHANNELS Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 013/392] fbdev: valkyriefb: Fix reference count leak in valkyriefb_init Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 014/392] mptcp: restore window probe Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 015/392] ASoC: qdsp6: q6asm: do not sleep while atomic Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 016/392] wifi: ath10k: Fix memory leak on unsupported WMI command Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 017/392] drm/msm/a6xx: Fix GMU firmware parser Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 018/392] ALSA: usb-audio: fix control pipe direction Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 019/392] bpf: Sync pending IRQ work before freeing ring buffer Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 020/392] bpf: Do not audit capability check in do_jit() Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 021/392] riscv, libbpf: Add RISC-V (RV64) support to bpf_tracing.h Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 022/392] libbpf: Normalize PT_REGS_xxx() macro definitions Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 023/392] libbpf: Fix powerpcs stack register definition in bpf_tracing.h Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 024/392] usbnet: Prevents free active kevent Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 025/392] drm/etnaviv: fix flush sequence logic Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 026/392] net: hns3: return error code when function fails Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 027/392] drm/amd/pm: fix smu table id bound check issue in smu_cmn_update_table() Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 028/392] drm/amd/pm/powerplay/smumgr: Fix PCIeBootLinkLevel value on Fiji Greg Kroah-Hartman
2025-12-03 15:22 ` [PATCH 5.15 029/392] drm/amd/pm/powerplay/smumgr: Fix PCIeBootLinkLevel value on Iceland Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 030/392] block: fix op_is_zone_mgmt() to handle REQ_OP_ZONE_RESET_ALL Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 031/392] regmap: slimbus: fix bus_context pointer in regmap init calls Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 032/392] serial: 8250_dw: Use devm_add_action_or_reset() Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 033/392] serial: 8250_dw: handle reset control deassert error Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 034/392] dt-bindings: usb: dwc3-imx8mp: dma-range is required only for imx8mp Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 035/392] ravb: Exclude gPTP feature support for RZ/G2L Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 036/392] net: ravb: Enforce descriptor type ordering Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 037/392] can: gs_usb: increase max interface to U8_MAX Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 038/392] net: phy: dp83867: Disable EEE support as not implemented Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 039/392] x86/resctrl: Fix miscount of bandwidth event when reactivating previously unavailable RMID Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 040/392] xhci: dbc: Provide sysfs option to configure dbc descriptors Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 041/392] xhci: dbc: poll at different rate depending on data transfer activity Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 042/392] xhci: dbc: Allow users to modify DbC poll interval via sysfs Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 043/392] xhci: dbc: Improve performance by removing delay in transfer event polling Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 044/392] xhci: dbc: Avoid event polling busyloop if pending rx transfers are inactive Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 045/392] xhci: dbc: fix bogus 1024 byte prefix if ttyDBC read races with stall event Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 046/392] x86/boot: Compile boot code with -std=gnu11 too Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 047/392] arch: back to -std=gnu89 in < v5.18 Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 048/392] Revert "docs/process/howto: Replace C89 with C11" Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 049/392] usb: gadget: f_fs: Fix epfile null pointer access after ep enable Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 050/392] drm/sched: Fix race in drm_sched_entity_select_rq() Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 051/392] drm/sysfb: Do not dereference NULL pointer in plane reset Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 052/392] block: make REQ_OP_ZONE_OPEN a write operation Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 053/392] soc: aspeed: socinfo: Add AST27xx silicon IDs Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 054/392] soc: qcom: smem: Fix endian-unaware access of num_entries Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 055/392] spi: loopback-test: Dont use %pK through printk Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 056/392] soc: ti: pruss: dont " Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 057/392] bpf: Dont " Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 058/392] pinctrl: single: fix bias pull up/down handling in pin_config_set Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 059/392] mmc: host: renesas_sdhi: Fix the actual clock Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 060/392] memstick: Add timeout to prevent indefinite waiting Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 061/392] ACPI: video: force native for Lenovo 82K8 Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 062/392] selftests/bpf: Fix bpf_prog_detach2 usage in test_lirc_mode2 Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 063/392] cpufreq/longhaul: handle NULL policy in longhaul_exit Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 064/392] arc: Fix __fls() const-foldability via __builtin_clzl() Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 065/392] irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 066/392] ACPI: PRM: Skip handlers with NULL handler_address or NULL VA Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 067/392] ACPI: scan: Add Intel CVS ACPI HIDs to acpi_ignore_dep_ids[] Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 068/392] hwmon: (sbtsi_temp) AMD CPU extended temperature range support Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 069/392] power: supply: sbs-charger: Support multiple devices Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 070/392] soc/tegra: fuse: Add Tegra114 nvmem cells and fuse lookups Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 071/392] mmc: sdhci-msm: Enable tuning for SDR50 mode for SD card Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 072/392] ACPICA: dispatcher: Use acpi_ds_clear_operands() in acpi_ds_call_control_method() Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 073/392] tee: allow a driver to allocate a tee_device without a pool Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 074/392] nvmet-fc: avoid scheduling association deletion twice Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 075/392] nvme-fc: use lock accessing port_state and rport state Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 076/392] video: backlight: lp855x_bl: Set correct EPROM start for LP8556 Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 077/392] tools/cpupower: fix error return value in cpupower_write_sysfs() Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 078/392] cpuidle: Fail cpuidle device registration if there is one already Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 079/392] clocksource/drivers/vf-pit: Replace raw_readl/writel to readl/writel Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 080/392] uprobe: Do not emulate/sstep original instruction when ip is changed Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 081/392] hwmon: (dell-smm) Add support for Dell OptiPlex 7040 Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 082/392] tools/cpupower: Fix incorrect size in cpuidle_state_disable() Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 083/392] tools/power x86_energy_perf_policy: Fix incorrect fopen mode usage Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 084/392] tools/power x86_energy_perf_policy: Enhance HWP enable Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 085/392] tools/power x86_energy_perf_policy: Prefer driver HWP limits Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 086/392] mfd: stmpe: Remove IRQ domain upon removal Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 087/392] mfd: stmpe-i2c: Add missing MODULE_LICENSE Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 088/392] mfd: madera: Work around false-positive -Wininitialized warning Greg Kroah-Hartman
2025-12-03 15:23 ` [PATCH 5.15 089/392] mfd: da9063: Split chip variant reading in two bus transactions Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 090/392] drm/amd/pm: Use cached metrics data on aldebaran Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 091/392] drm/amd/pm: Use cached metrics data on arcturus Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 092/392] drm/amdgpu/jpeg: Hold pg_lock before jpeg poweroff Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 093/392] drm/nouveau: replace snprintf() with scnprintf() in nvkm_snprintbf() Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 094/392] PCI: Disable MSI on RDC PCI to PCIe bridges Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 095/392] selftests/net: Replace non-standard __WORDSIZE with sizeof(long) * 8 Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 096/392] selftests/net: Ensure assert() triggers in psock_tpacket.c Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 097/392] drm/amdkfd: return -ENOTTY for unsupported IOCTLs Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 098/392] media: pci: ivtv: Dont create fake v4l2_fh Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 099/392] drm/tidss: Use the crtc_* timings when programming the HW Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 100/392] drm/tidss: Set crtc modesetting parameters with adjusted mode Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 101/392] x86/vsyscall: Do not require X86_PF_INSTR to emulate vsyscall Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 102/392] net: stmmac: Check stmmac_hw_setup() in stmmac_resume() Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 103/392] thunderbolt: Use is_pciehp instead of is_hotplug_bridge Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 104/392] powerpc/eeh: Use result of error_detected() in uevent Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 105/392] bridge: Redirect to backup port when port is administratively down Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 106/392] net: ipv6: fix field-spanning memcpy warning in AH output Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 107/392] media: imon: make send_packet() more robust Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 108/392] drm/bridge: display-connector: dont set OP_DETECT for DisplayPorts Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 109/392] iio: adc: spear_adc: mask SPEAR_ADC_STATUS channel and avg sample before setting register Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 110/392] usb: gadget: f_ncm: Fix MAC assignment NCM ethernet Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 111/392] char: misc: Does not request module for miscdevice with dynamic minor Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 112/392] net: When removing nexthops, dont call synchronize_net if it is not necessary Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 113/392] net: Call trace_sock_exceed_buf_limit() for memcg failure with SK_MEM_RECV Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 114/392] PCI/P2PDMA: Fix incorrect pointer usage in devm_kfree() call Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 115/392] ALSA: usb-audio: Add validation of UAC2/UAC3 effect units Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 116/392] rds: Fix endianness annotation for RDS_MPATH_HASH Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 117/392] scsi: mpi3mr: Fix controller init failure on fault during queue creation Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 118/392] scsi: pm80xx: Fix race condition caused by static variables Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 119/392] extcon: adc-jack: Fix wakeup source leaks on device unbind Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 120/392] drm/amdkfd: Tie UNMAP_LATENCY to queue_preemption Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 121/392] media: fix uninitialized symbol warnings Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 122/392] mips: lantiq: danube: add missing properties to cpu node Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 123/392] mips: lantiq: danube: add missing device_type in pci node Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 124/392] mips: lantiq: xway: sysctrl: rename stp clock Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 125/392] scsi: pm8001: Use int instead of u32 to store error codes Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 126/392] ptp: Limit time setting of PTP clocks Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 127/392] dmaengine: sh: setup_xref error handling Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 128/392] dmaengine: mv_xor: match alloc_wc and free_wc Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 129/392] dmaengine: dw-edma: Set status for callback_result Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 130/392] drm/msm/dsi/phy: Toggle back buffer resync after preparing PLL Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 131/392] drm/msm/dsi/phy_7nm: Fix missing initial VCO rate Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 132/392] ipv6: Add sanity checks on ipv6_devconf.rpl_seg_enabled Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 133/392] net: nfc: nci: Increase NCI_DATA_TIMEOUT to 3000 ms Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 134/392] net: call cond_resched() less often in __release_sock() Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 135/392] iommu/amd: Skip enabling command/event buffers for kdump Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 136/392] drm/amd: add more cyan skillfish PCI ids Greg Kroah-Hartman
2025-12-03 16:50 ` Deucher, Alexander
2025-12-04 16:30 ` Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 137/392] usb: gadget: f_hid: Fix zero length packet transfer Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 138/392] usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 139/392] drm/msm: make sure to not queue up recovery more than once Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 140/392] net: phy: marvell: Fix 88e1510 downshift counter errata Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 141/392] ntfs3: pretend $Extend records as regular files Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 142/392] phy: cadence: cdns-dphy: Enable lower resolutions in dphy Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 143/392] phy: rockchip: phy-rockchip-inno-csidphy: allow writes to grf register 0 Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 144/392] net: sh_eth: Disable WoL if system can not suspend Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 145/392] media: redrat3: use int type to store negative error codes Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 146/392] selftests: traceroute: Use require_command() Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 147/392] netfilter: nf_reject: dont reply to icmp error messages Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 148/392] x86/kvm: Prefer native qspinlock for dedicated vCPUs irrespective of PV_UNHALT Greg Kroah-Hartman
2025-12-03 15:24 ` [PATCH 5.15 149/392] selftests: Disable dad for ipv6 in fcnal-test.sh Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 150/392] eth: 8139too: Make 8139TOO_PIO depend on !NO_IOPORT_MAP Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 151/392] selftests: Replace sleep with slowwait Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 152/392] udp_tunnel: use netdev_warn() instead of netdev_WARN() Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 153/392] net/cls_cgroup: Fix task_get_classid() during qdisc run Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 154/392] drm/amdgpu: Use memdup_array_user in amdgpu_cs_wait_fences_ioctl Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 155/392] page_pool: always add GFP_NOWARN for ATOMIC allocations Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 156/392] selftests/Makefile: include $(INSTALL_DEP_TARGETS) in clean target to clean net/lib dependency Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 157/392] scsi: lpfc: Check return status of lpfc_reset_flush_io_context during TGT_RESET Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 158/392] scsi: lpfc: Remove ndlp kref decrement clause for F_Port_Ctrl in lpfc_cleanup Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 159/392] scsi: lpfc: Define size of debugfs entry for xri rebalancing Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 160/392] allow finish_no_open(file, ERR_PTR(-E...)) Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 161/392] usb: mon: Increase BUFF_MAX to 64 MiB to support multi-MB URBs Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 162/392] usb: xhci: plat: Facilitate using autosuspend for xhci plat devices Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 163/392] ipv6: np->rxpmtu race annotation Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 164/392] jfs: Verify inode mode when loading from disk Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 165/392] jfs: fix uninitialized waitqueue in transaction manager Greg Kroah-Hartman
2025-12-03 16:04 ` syzbot
2025-12-03 15:25 ` [PATCH 5.15 166/392] net: ethernet: microchip: sparx5: make it selectable for ARCH_LAN969X Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 167/392] iommu/vt-d: Replace snprintf with scnprintf in dmar_latency_snapshot() Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 168/392] wifi: ath10k: Fix connection after GTK rekeying Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 169/392] net: intel: fm10k: Fix parameter idx set but not used Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 170/392] r8169: set EEE speed down ratio to 1 Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 171/392] PCI: cadence: Check for the existence of cdns_pcie::ops before using it Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 172/392] sparc/module: Add R_SPARC_UA64 relocation handling Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 173/392] remoteproc: qcom: q6v5: Avoid handling handover twice Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 174/392] NFSv4: handle ERR_GRACE on delegation recalls Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 175/392] NFSv4.1: fix mount hang after CREATE_SESSION failure Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 176/392] nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode dereferencing Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 177/392] scsi: libfc: Fix potential buffer overflow in fc_ct_ms_fill() Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 178/392] fs: ext4: change GFP_KERNEL to GFP_NOFS to avoid deadlock Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 179/392] net: macb: avoid dealing with endianness in macb_set_hwaddr() Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 180/392] Bluetooth: SCO: Fix UAF on sco_conn_free Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 181/392] Bluetooth: bcsp: receive data only if registered Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 182/392] ALSA: usb-audio: add mono main switch to Presonus S1824c Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 183/392] exfat: limit log print for IO error Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 184/392] page_pool: Clamp pool size to max 16K pages Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 185/392] orangefs: fix xattr related buffer overflow Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 186/392] ACPICA: Update dsmethod.c to get rid of unused variable warning Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 187/392] RDMA/irdma: Fix SD index calculation Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 188/392] RDMA/irdma: Remove unused struct irdma_cq fields Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 189/392] RDMA/irdma: Set irdma_cq cq_num field during CQ create Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 190/392] RDMA/hns: Fix wrong WQE data when QP wraps around Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 191/392] btrfs: mark dirty extent range for out of bound prealloc extents Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 192/392] fs/hpfs: Fix error code for new_inode() failure in mkdir/create/mknod/symlink Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 193/392] um: Fix help message for ssl-non-raw Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 194/392] rtc: pcf2127: clear minute/second interrupt Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 195/392] ARM: at91: pm: save and restore ACR during PLL disable/enable Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 196/392] clk: at91: clk-master: Add check for divide by 3 Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 197/392] clk: ti: am33xx: keep WKUP_DEBUGSS_CLKCTRL enabled Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 198/392] 9p: fix /sys/fs/9p/caches overwriting itself Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 199/392] cpufreq: tegra186: Initialize all cores to max frequencies Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 200/392] 9p: sysfs_init: dont hardcode error to ENOMEM Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 201/392] ACPI: property: Return present device nodes only on fwnode interface Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 202/392] tools bitmap: Add missing asm-generic/bitsperlong.h include Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 203/392] fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 204/392] ASoC: meson: aiu-encoder-i2s: fix bit clock polarity Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 205/392] ceph: add checking of wait_for_completion_killable() return value Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 206/392] ALSA: hda/realtek: Audio disappears on HP 15-fc000 after warm boot again Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 207/392] Revert "wifi: ath10k: avoid unnecessary wait for service ready message" Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 208/392] riscv: ptdump: use seq_puts() in pt_dump_seq_puts() macro Greg Kroah-Hartman
2025-12-03 15:25 ` [PATCH 5.15 209/392] net: dsa: tag_brcm: legacy: fix untagged rx on unbridged ports for bcm63xx Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 210/392] selftests/net: fix out-of-order delivery of FIN in gro:tcp test Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 211/392] selftests/net: fix GRO coalesce test and add ext header coalesce tests Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 212/392] selftests/net: use destination options instead of hop-by-hop Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 213/392] netdevsim: add Makefile for selftests Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 214/392] selftests: netdevsim: Fix ethtool-coalesce.sh fail by installing ethtool-common.sh Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 215/392] net: vlan: sync VLAN features with lower device Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 216/392] net: dsa: b53: fix resetting speed and pause on forced link Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 217/392] net: dsa: b53: fix enabling ip multicast Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 218/392] net: dsa: b53: stop reading ARL entries if search is done Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 219/392] sctp: Hold RCU read lock while iterating over address list Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 220/392] sctp: Prevent TOCTOU out-of-bounds write Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 221/392] sctp: Hold sock lock while iterating over address list Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 222/392] net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 223/392] bnxt_en: PTP: Refactor PTP initialization functions Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 224/392] bnxt_en: Fix a possible memory leak in bnxt_ptp_init Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 225/392] tracing: Fix memory leaks in create_field_var() Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 226/392] rtc: rx8025: fix incorrect register reference Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 227/392] lib/crypto: curve25519-hacl64: Fix older clang KASAN workaround for GCC Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 228/392] extcon: adc-jack: Cleanup wakeup source only if it was enabled Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 229/392] selftests: netdevsim: set test timeout to 10 minutes Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 230/392] drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 231/392] compiler_types: Move unused static inline functions warning to W=2 Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 232/392] RISC-V: clear hot-unplugged cores from all task mm_cpumasks to avoid rfence errors Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 233/392] NFS4: Fix state renewals missing after boot Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 234/392] HID: quirks: avoid Cooler Master MM712 dongle wakeup bug Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 235/392] NFS: check if suid/sgid was cleared after a write as needed Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 236/392] ASoC: max98090/91: fixed max98091 ALSA widget powering up/down Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 237/392] net: fec: correct rx_bytes statistic for the case SHIFT16 is set Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 238/392] Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 239/392] Bluetooth: 6lowpan: reset link-local header on ipv6 recv path Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 240/392] Bluetooth: 6lowpan: fix BDADDR_LE vs ADDR_LE_DEV address type confusion Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 241/392] Bluetooth: 6lowpan: Dont hold spin lock over sleeping functions Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 242/392] sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 243/392] net/smc: fix mismatch between CLC header and proposal Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 244/392] tipc: Fix use-after-free in tipc_mon_reinit_self() Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 245/392] net: mdio: fix resource leak in mdiobus_register_device() Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 246/392] wifi: mac80211: skip rate verification for not captured PSDUs Greg Kroah-Hartman
2025-12-03 15:26 ` Greg Kroah-Hartman [this message]
2025-12-03 15:26 ` [PATCH 5.15 248/392] net: sched: act_connmark: get rid of tcf_connmark_walker and tcf_connmark_search Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 249/392] net/sched: act_connmark: transition to percpu stats and rcu Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 250/392] net_sched: act_connmark: use RCU in tcf_connmark_dump() Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 251/392] net: sched: act_connmark: initialize struct tc_ife to fix kernel leak Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 252/392] net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 253/392] net/mlx5e: Fix maxrate wraparound in threshold between units Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 254/392] net/mlx5e: Fix wraparound in rate limiting for values above 255 Gbps Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 255/392] net_sched: limit try_bulk_dequeue_skb() batches Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 256/392] hsr: Fix supervision frame sending on HSRv0 Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 257/392] Bluetooth: L2CAP: export l2cap_chan_hold for modules Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 258/392] acpi,srat: Fix incorrect device handle check for Generic Initiator Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 259/392] regulator: fixed: fix GPIO descriptor leak on register failure Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 260/392] ASoC: cs4271: Fix regulator leak on probe failure Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 261/392] drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 262/392] NFSv4: Fix an incorrect parameter when calling nfs4_call_sync() Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 263/392] ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 264/392] bpf: Add bpf_prog_run_data_pointers() Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 265/392] mptcp: pm: in-kernel: C-flag: handle late ADD_ADDR Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 266/392] mm/ksm: fix flag-dropping behavior in ksm_madvise Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 267/392] lib/crypto: arm/curve25519: Disable on CPU_BIG_ENDIAN Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 268/392] mtd: onenand: Pass correct pointer to IRQ handler Greg Kroah-Hartman
2025-12-03 15:26 ` [PATCH 5.15 269/392] netfilter: nf_tables: reject duplicate device on updates Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 270/392] HID: hid-ntrig: Prevent memory leak in ntrig_report_version() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 271/392] NFSD: free copynotify stateid in nfs4_free_ol_stateid() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 272/392] gcov: add support for GCC 15 Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 273/392] strparser: Fix signed/unsigned mismatch bug Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 274/392] ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 275/392] fs/proc: fix uaf in proc_readdir_de() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 276/392] ALSA: usb-audio: Fix potential overflow of PCM transfer buffer Greg Kroah-Hartman
2025-12-03 16:25 ` Takashi Iwai
2025-12-04 16:20 ` Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 277/392] spi: Try to get ACPI GPIO IRQ earlier Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 278/392] EDAC/altera: Handle OCRAM ECC enable after warm reset Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 279/392] EDAC/altera: Use INTTEST register for Ethernet and USB SBE injection Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 280/392] isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 281/392] net/sched: act_connmark: handle errno on tcf_idr_check_alloc Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 282/392] HID: quirks: work around VID/PID conflict for 0x4c4a/0x4155 Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 283/392] mtd: rawnand: cadence: fix DMA device NULL pointer dereference Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 284/392] exfat: check return value of sb_min_blocksize in exfat_read_boot_sector Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 285/392] be2net: pass wrb_params in case of OS2BMC Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 286/392] Input: cros_ec_keyb - fix an invalid memory access Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 287/392] Input: imx_sc_key - fix memory corruption on unload Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 288/392] nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 289/392] scsi: sg: Do not sleep in atomic context Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 290/392] scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 291/392] MIPS: Malta: Fix !EVA SOC-it PCI MMIO Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 292/392] mptcp: fix race condition in mptcp_schedule_work() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 293/392] drm/tegra: dc: Fix reference leak in tegra_dc_couple() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 294/392] mlxsw: spectrum: Fix memory leak in mlxsw_sp_flower_stats() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 295/392] net: dsa: hellcreek: fix missing error handling in LED registration Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 296/392] net: openvswitch: remove never-working support for setting nsh fields Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 297/392] s390/ctcm: Fix double-kfree Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 298/392] platform/x86/intel/speed_select_if: Convert PCIBIOS_* return codes to errnos Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 299/392] kernel.h: Move ARRAY_SIZE() to a separate header Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 300/392] net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont() and qede_tpa_end() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 301/392] vsock: Ignore signal/timeout on connect() if already established Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 302/392] scsi: core: Fix a regression triggered by scsi_host_busy() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 303/392] selftests: net: use BASH for bareudp testing Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 304/392] net: tls: Cancel RX async resync request on rcd_delta overflow Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 305/392] kconfig/mconf: Initialize the default locale at startup Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 306/392] kconfig/nconf: " Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 307/392] mm/mm_init: fix hash table order logging in alloc_large_system_hash() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 308/392] mm/secretmem: fix use-after-free race in fault handler Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 309/392] ALSA: usb-audio: fix uac2 clock source at terminal parser Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 310/392] net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 311/392] tracing/tools: Fix incorrcet short option in usage text for --threads Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 312/392] uio_hv_generic: Set event for all channels on the device Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 313/392] Makefile.compiler: replace cc-ifversion with compiler-specific macros Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 314/392] btrfs: add helper to truncate inode items when logging inode Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 315/392] btrfs: fix crash on racing fsync and size-extending write into prealloc Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 316/392] net: qede: Initialize qede_ll_ops with designated initializer Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 317/392] mmc: sdhci-of-dwcmshc: Change DLL_STRBIN_TAPNUM_DEFAULT to 0x4 Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 318/392] net: netpoll: fix incorrect refcount handling causing incorrect cleanup Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 319/392] pmdomain: imx: Fix reference count leak in imx_gpc_remove Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 320/392] pmdomain: arm: scmi: Fix genpd leak on provider registration failure Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 321/392] pmdomain: samsung: plug potential memleak during probe Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 322/392] selftests: mptcp: connect: fix fallback note due to OoO Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 323/392] mptcp: Disallow MPTCP subflows from sockmap Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 324/392] usb: deprecate the third argument of usb_maxpacket() Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 325/392] Input: remove " Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 326/392] Input: pegasus-notetaker - fix potential out-of-bounds access Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 327/392] ata: libata-scsi: Fix system suspend for a security locked drive Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 328/392] dt-bindings: pinctrl: toshiba,visconti: Fix number of items in groups Greg Kroah-Hartman
2025-12-03 15:27 ` [PATCH 5.15 329/392] mm/mempool: replace kmap_atomic() with kmap_local_page() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 330/392] mm/mempool: fix poisoning order>0 pages with HIGHMEM Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 331/392] mptcp: fix ack generation for fallback msk Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 332/392] mptcp: fix premature close in case of fallback Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 333/392] mptcp: fix a race in mptcp_pm_del_add_timer() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 334/392] mptcp: do not fallback when OoO is present Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 335/392] Revert "block: Move checking GENHD_FL_NO_PART to bdev_add_partition()" Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 336/392] Revert "block: dont add or resize partition on the disk with GENHD_FL_NO_PART" Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 337/392] can: kvaser_usb: leaf: Fix potential infinite loop in command parsers Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 338/392] Bluetooth: SMP: Fix not generating mackey and ltk when repairing Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 339/392] platform/x86: intel: punit_ipc: fix memory corruption Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 340/392] net: aquantia: Add missing descriptor cache invalidation on ATL2 Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 341/392] net/mlx5e: Fix validation logic in rate limiting Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 342/392] net: sxgbe: fix potential NULL dereference in sxgbe_rx() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 343/392] net: dsa: sja1105: Convert to mdiobus_c45_read Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 344/392] net: dsa: sja1105: simplify static configuration reload Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 345/392] net: dsa: sja1105: fix SGMII linking at 10M or 100M but not passing traffic Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 346/392] net: atlantic: fix fragment overflow handling in RX path Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 347/392] mailbox: mailbox-test: Fix debugfs_create_dir error checking Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 348/392] spi: bcm63xx: fix premature CS deassertion on RX-only transactions Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 349/392] Revert "perf/x86: Always store regs->ip in perf_callchain_kernel()" Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 350/392] iio: imu: st_lsm6dsx: fix array size for st_lsm6dsx_settings fields Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 351/392] iio:common:ssp_sensors: Fix an error handling path ssp_probe() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 352/392] iio: accel: bmc150: Fix irq assumption regression Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 353/392] MIPS: mm: Prevent a TLB shutdown on initial uniquification Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 354/392] MIPS: mm: kmalloc tlb_vpn array to avoid stack overflow Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 355/392] atm/fore200e: Fix possible data race in fore200e_open() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 356/392] can: sja1000: fix max irq loop handling Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 357/392] can: sun4i_can: sun4i_can_interrupt(): " Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 358/392] dm-verity: fix unreliable memory allocation Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 359/392] drivers/usb/dwc3: fix PCI parent check Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 360/392] thunderbolt: Add support for Intel Wildcat Lake Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 361/392] slimbus: ngd: Fix reference count leak in qcom_slim_ngd_notify_slaves Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 362/392] firmware: stratix10-svc: fix bug in saving controller data Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 363/392] serial: amba-pl011: prefer dma_mapping_error() over explicit address checking Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 364/392] most: usb: fix double free on late probe failure Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 365/392] usb: cdns3: Fix double resource release in cdns3_pci_probe Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 366/392] usb: gadget: f_eem: Fix memory leak in eem_unwrap Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 367/392] usb: storage: Fix memory leak in USB bulk transport Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 368/392] USB: storage: Remove subclass and protocol overrides from Novatek quirk Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 369/392] usb: storage: sddr55: Reject out-of-bound new_pba Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 370/392] usb: uas: fix urb unmapping issue when the uas device is remove during ongoing data transfer Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 371/392] usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 372/392] xhci: dbgtty: Fix data corruption when transmitting data form DbC to host Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 373/392] USB: serial: ftdi_sio: add support for u-blox EVK-M101 Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 374/392] USB: serial: option: add support for Rolling RW101R-GL Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 375/392] drm: sti: fix device leaks at component probe Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 376/392] drm/amd/display: Check NULL before accessing Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 377/392] libceph: fix potential use-after-free in have_mon_and_osd_map() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 378/392] libceph: prevent potential out-of-bounds writes in handle_auth_session_key() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 379/392] staging: rtl8712: Remove driver using deprecated API wext Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 380/392] selftests: mptcp: join: rm: set backup flag Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 381/392] mptcp: avoid unneeded subflow-level drops Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 382/392] mptcp: Fix proto fallback detection with BPF Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 383/392] smb: client: fix memory leak in cifs_construct_tcon() Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 384/392] usb: renesas_usbhs: Convert to platform remove callback returning void Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 385/392] usb: renesas_usbhs: Fix synchronous external abort on unbind Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 386/392] usb: typec: ucsi: psy: Set max current to zero when disconnected Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 387/392] Bluetooth: Add more enc key size check Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 388/392] scsi: pm80xx: Set phy->enable_completion only when we Greg Kroah-Hartman
2025-12-03 15:28 ` [PATCH 5.15 389/392] selftests/bpf: Dont rely on preserving volatile in PT_REGS macros in loop3 Greg Kroah-Hartman
2025-12-03 15:29 ` [PATCH 5.15 390/392] libbpf: Fix riscv register names Greg Kroah-Hartman
2025-12-03 15:29 ` [PATCH 5.15 391/392] libbpf, riscv: Use a0 for RC register Greg Kroah-Hartman
2025-12-03 15:29 ` [PATCH 5.15 392/392] libbpf: Fix invalid return address register in s390 Greg Kroah-Hartman
2025-12-03 17:51 ` [PATCH 5.15 000/392] 5.15.197-rc1 review Florian Fainelli
2025-12-04 16:36 ` Greg Kroah-Hartman
2025-12-03 18:46 ` Mark Brown
2025-12-03 18:51 ` Florian Fainelli
2025-12-04 16:31 ` Greg Kroah-Hartman
2025-12-04 16:41 ` Ian Rogers
2025-12-03 19:40 ` Jon Hunter
2025-12-04 16:34 ` Greg Kroah-Hartman
2025-12-03 23:07 ` Hardik Garg
2025-12-04 0:01 ` Shuah Khan
2025-12-04 8:38 ` Naresh Kamboju
2025-12-04 16:36 ` Greg Kroah-Hartman
2025-12-04 14:07 ` Ron Economos
2025-12-10 16:48 ` Jeffrin Thalakkottoor
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=20251203152423.260831419@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=davem@davemloft.net \
--cc=jhs@mojatatu.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=shaozhengchao@huawei.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.