> is it possibility that sk->sk_dst_cache is overwritten?
maybe ;-)
> like in __sk_dst_check, > when tcp timer tries to resend a packet, at the same time, tcp_close is called
tcp_close() locks the sock; tcp_retransmit_timer() is also called with the sock locked. So they should not be operating on the same sock concurrently.
> is it possibility that sk->sk_dst_cache is overwritten?
maybe ;-)
> like in __sk_dst_check,
> when tcp timer tries to resend a packet, at the same time, tcp_close is called
tcp_close() locks the sock; tcp_retransmit_ timer() is also called with the sock locked. So they should not be operating on the same sock concurrently.