Pārlūkot izejas kodu

sctp: delete active ICMP proto unreachable timer when free transport

transport may be free before ICMP proto unreachable timer expire, so
we should delete active ICMP proto unreachable timer when transport
is going away.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Acked-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Wei Yongjun 15 gadi atpakaļ
vecāks
revīzija
55fa0cfd7c
1 mainītis faili ar 4 papildinājumiem un 0 dzēšanām
  1. 4 0
      net/sctp/transport.c

+ 4 - 0
net/sctp/transport.c

@@ -173,6 +173,10 @@ void sctp_transport_free(struct sctp_transport *transport)
 	    del_timer(&transport->T3_rtx_timer))
 	    del_timer(&transport->T3_rtx_timer))
 		sctp_transport_put(transport);
 		sctp_transport_put(transport);
 
 
+	/* Delete the ICMP proto unreachable timer if it's active. */
+	if (timer_pending(&transport->proto_unreach_timer) &&
+	    del_timer(&transport->proto_unreach_timer))
+		sctp_association_put(transport->asoc);
 
 
 	sctp_transport_put(transport);
 	sctp_transport_put(transport);
 }
 }