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>

authored by Wei Yongjun and committed by David S. Miller 55fa0cfd 35790c04

+4
+4
net/sctp/transport.c
··· 173 del_timer(&transport->T3_rtx_timer)) 174 sctp_transport_put(transport); 175 176 177 sctp_transport_put(transport); 178 }
··· 173 del_timer(&transport->T3_rtx_timer)) 174 sctp_transport_put(transport); 175 176 + /* Delete the ICMP proto unreachable timer if it's active. */ 177 + if (timer_pending(&transport->proto_unreach_timer) && 178 + del_timer(&transport->proto_unreach_timer)) 179 + sctp_association_put(transport->asoc); 180 181 sctp_transport_put(transport); 182 }