diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 425e2e817..1b6a30e4b 100755 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -8288,10 +8288,8 @@ static int sctp_listen_start(struct sock *sk, int backlog) */ inet_sk_set_state(sk, SCTP_SS_LISTENING); if (!ep->base.bind_addr.port) { - if (sctp_autobind(sk)) { - inet_sk_set_state(sk, SCTP_SS_CLOSED); + if (sctp_autobind(sk)) return -EAGAIN; - } } else { if (sctp_get_port(sk, inet_sk(sk)->inet_num)) { inet_sk_set_state(sk, SCTP_SS_CLOSED);