On Tue, 2016-02-02 at 01:16 +0800, Xin Long wrote:

> 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.

Well I believe you missed something yes.

All RX paths run in rcu_read_lock()

ip_local_deliver_finish()
ipv6_rcv()
ip6_input_finish()



Reply via email to