-----"Stefan Metzmacher" <metze@xxxxxxxxx> wrote: ----- >To: "Bernard Metzler" <bmt@xxxxxxxxxxxxxx> >From: "Stefan Metzmacher" <metze@xxxxxxxxx> >Date: 05/07/2021 01:39AM >Cc: linux-rdma@xxxxxxxxxxxxxxx, "Stefan Metzmacher" <metze@xxxxxxxxx> >Subject: [EXTERNAL] [PATCH 23/31] rdma/siw: make use of >__siw_cep_close() in siw_accept() > >This is basically the same just that the code in >__siw_cep_close() common, it skips elements which >are still NULL. Before it was really hard to prove >that we don't deference NULL pointers. > >While developing my smbdirect driver, I hit so much >crashes and deadlocks, so we better have code that's >understandable. > >Fixes: 6c52fdc244b5 ("rdma/siw: connection management") >Signed-off-by: Stefan Metzmacher <metze@xxxxxxxxx> >Cc: Bernard Metzler <bmt@xxxxxxxxxxxxxx> >Cc: linux-rdma@xxxxxxxxxxxxxxx >--- > drivers/infiniband/sw/siw/siw_cm.c | 18 +----------------- > 1 file changed, 1 insertion(+), 17 deletions(-) > >diff --git a/drivers/infiniband/sw/siw/siw_cm.c >b/drivers/infiniband/sw/siw/siw_cm.c >index 09ae7f7ca82a..7fd67499f1d3 100644 >--- a/drivers/infiniband/sw/siw/siw_cm.c >+++ b/drivers/infiniband/sw/siw/siw_cm.c >@@ -1833,23 +1833,7 @@ int siw_accept(struct iw_cm_id *id, struct >iw_cm_conn_param *params) > > return 0; > error: >- siw_socket_disassoc(cep->sock); >- sock_release(cep->sock); >- cep->sock = NULL; >- >- cep->state = SIW_EPSTATE_CLOSED; >- >- if (cep->cm_id) { >- cep->cm_id->rem_ref(id); >- cep->cm_id = NULL; >- } >- if (qp->cep) { >- siw_cep_put(cep); >- qp->cep = NULL; >- } >- cep->qp = NULL; >- siw_qp_put(qp); >- >+ __siw_cep_close(cep); > siw_cep_set_free(cep); > siw_cep_put(cep); > >-- >2.25.1 > > OK, makes life easier. Reviewed-by: Bernard Metzler <bmt@xxxxxxxxxxxxxx>