Commit 5309dbc9 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'net_sched-extend-rcu-use-in-dump-methods-ii'

Eric Dumazet says:

====================
net_sched: extend RCU use in dump() methods (II)

Second series adding RCU dump() to three actions

First patch removes BH blocking on modules done in the first series.
====================

Link: https://patch.msgid.link/20250827125349.3505302-1-edumazet@google.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 2584ed25 53df77e7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
struct tcf_skbmod_params {
	struct rcu_head	rcu;
	u64	flags; /*up to 64 types of operations; extend if needed */
	int	action;
	u8	eth_dst[ETH_ALEN];
	u16	eth_type;
	u8	eth_src[ETH_ALEN];
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
struct tcf_tunnel_key_params {
	struct rcu_head		rcu;
	int			tcft_action;
	int			action;
	struct metadata_dst     *tcft_enc_metadata;
};

+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
#include <linux/tc_act/tc_vlan.h>

struct tcf_vlan_params {
	int		  action;
	int               tcfv_action;
	unsigned char     tcfv_push_dst[ETH_ALEN];
	unsigned char     tcfv_push_src[ETH_ALEN];
+2 −2
Original line number Diff line number Diff line
@@ -169,10 +169,10 @@ static int tcf_connmark_init(struct net *net, struct nlattr *nla,

	nparms->action = parm->action;

	spin_lock_bh(&ci->tcf_lock);
	spin_lock(&ci->tcf_lock);
	goto_ch = tcf_action_set_ctrlact(*a, parm->action, goto_ch);
	oparms = rcu_replace_pointer(ci->parms, nparms, lockdep_is_held(&ci->tcf_lock));
	spin_unlock_bh(&ci->tcf_lock);
	spin_unlock(&ci->tcf_lock);

	if (goto_ch)
		tcf_chain_put_by_act(goto_ch);
+2 −2
Original line number Diff line number Diff line
@@ -101,11 +101,11 @@ static int tcf_csum_init(struct net *net, struct nlattr *nla,
	params_new->update_flags = parm->update_flags;
	params_new->action = parm->action;

	spin_lock_bh(&p->tcf_lock);
	spin_lock(&p->tcf_lock);
	goto_ch = tcf_action_set_ctrlact(*a, parm->action, goto_ch);
	params_new = rcu_replace_pointer(p->params, params_new,
					 lockdep_is_held(&p->tcf_lock));
	spin_unlock_bh(&p->tcf_lock);
	spin_unlock(&p->tcf_lock);

	if (goto_ch)
		tcf_chain_put_by_act(goto_ch);
Loading