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

>
>
>
>
>

Reply via email to