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.
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
committed by
Daniel Borkmann
parent
486cdf2158
commit
1f821611f4
@@ -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.
|
* mixing with BH RCU lock doesn't work.
|
||||||
*/
|
*/
|
||||||
preempt_disable();
|
preempt_disable();
|
||||||
rcu_read_lock();
|
|
||||||
bpf_compute_data_pointers(skb);
|
bpf_compute_data_pointers(skb);
|
||||||
ret = bpf_prog_run_save_cb(lwt->prog, skb);
|
ret = bpf_prog_run_save_cb(lwt->prog, skb);
|
||||||
rcu_read_unlock();
|
|
||||||
|
|
||||||
switch (ret) {
|
switch (ret) {
|
||||||
case BPF_OK:
|
case BPF_OK:
|
||||||
|
|||||||
Reference in New Issue
Block a user