浏览代码

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 年之前
父节点
当前提交
55fa0cfd7c
共有 1 个文件被更改,包括 4 次插入0 次删除
  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);
 }
 }