> > But the whole __ip_do_redirect() needs to be called from rcu_read_lock() > already. > > No need to add another rcu_read_lock() around fib_lookup() > > How did you come doing this patch ? Any particular stack dump or > something ? > no, no stack dump was found. by reviewing code, I found it when I cooked another patch.
and the path that __ip_do_redirect() is called should be: icmp_rcv |-> icmp_unreach -\ |-> icmp_redirect -> icmp_socket_deliver -> ipprot->err_handler() [tcp_v4/6_err, sctp_v4/6_err, dccp_v4/6_err, udpv4/6_err ...] -> ... -> __ip_do_redirect() I checked the codes for many times, didn't find any rcu_lock on this path, unless we treat BH as rcu_lock. did I miss something ? Thanks. > > > > >