Commit d9a5b486 authored by Guoqing Jiang's avatar Guoqing Jiang Committed by Leon Romanovsky
Browse files
parent 788bbf4c
Loading
Loading
Loading
Loading
+12 −14
Original line number Diff line number Diff line
@@ -367,6 +367,15 @@ static void siw_free_cm_id(struct siw_cep *cep)
	cep->cm_id = NULL;
}

static void siw_destroy_cep_sock(struct siw_cep *cep)
{
	if (cep->sock) {
		siw_socket_disassoc(cep->sock);
		sock_release(cep->sock);
		cep->sock = NULL;
	}
}

/*
 * siw_qp_cm_drop()
 *
@@ -423,14 +432,7 @@ void siw_qp_cm_drop(struct siw_qp *qp, int schedule)
		}
		cep->state = SIW_EPSTATE_CLOSED;

		if (cep->sock) {
			siw_socket_disassoc(cep->sock);
			/*
			 * Immediately close socket
			 */
			sock_release(cep->sock);
			cep->sock = NULL;
		}
		siw_destroy_cep_sock(cep);
		if (cep->qp) {
			cep->qp = NULL;
			siw_qp_put(qp);
@@ -1693,9 +1695,7 @@ int siw_accept(struct iw_cm_id *id, struct iw_cm_conn_param *params)
error_unlock:
	up_write(&qp->state_lock);
error:
	siw_socket_disassoc(cep->sock);
	sock_release(cep->sock);
	cep->sock = NULL;
	siw_destroy_cep_sock(cep);

	cep->state = SIW_EPSTATE_CLOSED;

@@ -1740,9 +1740,7 @@ int siw_reject(struct iw_cm_id *id, const void *pdata, u8 pd_len)
		cep->mpa.hdr.params.bits |= MPA_RR_FLAG_REJECT; /* reject */
		siw_send_mpareqrep(cep, pdata, pd_len);
	}
	siw_socket_disassoc(cep->sock);
	sock_release(cep->sock);
	cep->sock = NULL;
	siw_destroy_cep_sock(cep);

	cep->state = SIW_EPSTATE_CLOSED;