@@ -1489,14 +1489,19 @@ int siw_connect(struct iw_cm_id *id, struct iw_cm_conn_param *params)
cep->mpa.pdata = NULL;
}
- if (rv >= 0) {
- rv = siw_cm_queue_work(cep, SIW_CM_WORK_MPATIMEOUT);
- if (!rv) {
- siw_dbg_cep(cep, "[QP %u]: exit\n", qp_id(qp));
- siw_cep_set_free(cep);
- return 0;
- }
+ if (rv < 0) {
+ goto error;
+ }
+
+ rv = siw_cm_queue_work(cep, SIW_CM_WORK_MPATIMEOUT);
+ if (rv != 0) {
+ goto error;
}
+
+ siw_dbg_cep(cep, "[QP %u]: exit\n", qp_id(qp));
+ siw_cep_set_free(cep);
+ return 0;
+
error:
siw_dbg(id->device, "failed: %d\n", rv);
This will make the following changes easier. Fixes: 6c52fdc244b5 ("rdma/siw: connection management") Signed-off-by: Stefan Metzmacher <metze@samba.org> Cc: Bernard Metzler <bmt@zurich.ibm.com> Cc: linux-rdma@vger.kernel.org --- drivers/infiniband/sw/siw/siw_cm.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-)