X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fsctp%2Fendpointola.c;h=67bd53070ee0b31d0babb2221ccd57e03f81124b;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=ffda1d680529c4cb4c9fc6b7a478097e44983f54;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c index ffda1d680..67bd53070 100644 --- a/net/sctp/endpointola.c +++ b/net/sctp/endpointola.c @@ -158,12 +158,6 @@ void sctp_endpoint_add_asoc(struct sctp_endpoint *ep, void sctp_endpoint_free(struct sctp_endpoint *ep) { ep->base.dead = 1; - - ep->base.sk->sk_state = SCTP_SS_CLOSED; - - /* Unlink this endpoint, so we can't find it again! */ - sctp_unhash_endpoint(ep); - sctp_endpoint_put(ep); } @@ -172,6 +166,11 @@ static void sctp_endpoint_destroy(struct sctp_endpoint *ep) { SCTP_ASSERT(ep->base.dead, "Endpoint is not dead", return); + ep->base.sk->sk_state = SCTP_SS_CLOSED; + + /* Unlink this endpoint, so we can't find it again! */ + sctp_unhash_endpoint(ep); + /* Free up the HMAC transform. */ sctp_crypto_free_tfm(sctp_sk(ep->base.sk)->hmac);