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 <ap420...@gmail.com>
---
 net/core/lwt_bpf.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/net/core/lwt_bpf.c b/net/core/lwt_bpf.c
index e7e626f..a49c7ba 100644
--- a/net/core/lwt_bpf.c
+++ b/net/core/lwt_bpf.c
@@ -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:
-- 
2.9.3

Reply via email to