lwt_bpf: remove unnecessary rcu_read_lock in run_lwt_bpf
Subsystems (2)
PATCH 1/1 lwt_bpf: remove unnecessary rcu_read_lock in run_lwt_bpf
run_lwt_bpf is called by bpf_{input/output/xmit}. These functions are already protected by rcu_read_lock. because lwtunnel_{input/output/xmit} holds rcu_read_lock and then calls bpf_{input/output/xmit}.
So that rcu_read_lock in the run_lwt_bpf is unnecessary.
--- net/core/lwt_bpf.c | 2 -- 1 file changed, 2 deletions(-)
net/core/lwt_bpf.c +0 -2
@@ -50,10 +50,8 @@ static int run_lwt_bpf(struct sk_buff *skb, struct bpf_lwt_prog *lwt,* mixing with BH RCU lock doesn't work. */ preempt_disable (); -rcu_read_lock ();bpf_compute_data_pointers (skb); ret =bpf_prog_run_save_cb (lwt->prog, skb); -rcu_read_unlock ();switch (ret) {case BPF_OK :
Signature · 1 line
2.9.3
Quoted 7 lines · Taehee Yoo
run_lwt_bpfis called by bpf_{input/output/xmit}. These functions are already protected byrcu_read_lock. because lwtunnel_{input/output/xmit} holdsrcu_read_lockand then calls bpf_{input/output/xmit}.
So thatrcu_read_lockin therun_lwt_bpfis unnecessary.Signed-off-by Taehee Yoo <[email protected]>
Daniel Borkmann
AppliedQuoted 7 lines · Taehee Yoo
run_lwt_bpfis called by bpf_{input/output/xmit}. These functions are already protected byrcu_read_lock. because lwtunnel_{input/output/xmit} holdsrcu_read_lockand then calls bpf_{input/output/xmit}.
So thatrcu_read_lockin therun_lwt_bpfis unnecessary.Signed-off-by Taehee Yoo <[email protected]>
Applied to bpf-next, thanks Taehee!