aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/transport.c
diff options
context:
space:
mode:
authorWei Yongjun <yjwei@cn.fujitsu.com>2010-05-09 12:56:07 -0400
committerDavid S. Miller <davem@davemloft.net>2010-05-16 03:46:22 -0400
commit55fa0cfd7c3ac2ae34cac7dca2e3fbcfe661e6c3 (patch)
tree0f9ccf2d00a10a88f601245fced3581f49f93862 /net/sctp/transport.c
parent35790c0421121364883a167bab8a2e37e1f67f78 (diff)
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>
Diffstat (limited to 'net/sctp/transport.c')
-rw-r--r--net/sctp/transport.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/sctp/transport.c b/net/sctp/transport.c
index 4a368038d46f..165d54e07fcd 100644
--- a/net/sctp/transport.c
+++ b/net/sctp/transport.c
@@ -173,6 +173,10 @@ void sctp_transport_free(struct sctp_transport *transport)
173 del_timer(&transport->T3_rtx_timer)) 173 del_timer(&transport->T3_rtx_timer))
174 sctp_transport_put(transport); 174 sctp_transport_put(transport);
175 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);
176 180
177 sctp_transport_put(transport); 181 sctp_transport_put(transport);
178} 182}