Messages in this thread | | | Subject | Re: [PATCH] RDMA/rvt: Improve exception handling in rvt_create_qp() | From | Markus Elfring <> | Date | Sun, 14 Jun 2020 20:18:27 +0200 |
| |
> … >> +++ b/drivers/infiniband/sw/rdmavt/qp.c >> @@ -1203,6 +1203,7 @@ struct ib_qp *rvt_create_qp(struct ib_pd *ibpd, >> qp->s_flags = RVT_S_SIGNAL_REQ_WR; >> err = alloc_ud_wq_attr(qp, rdi->dparms.node); >> if (err) { >> + rvt_free_rq(&qp->r_rq); >> ret = (ERR_PTR(err)); >> goto bail_driver_priv; >> } > > How do you think about the following code variant with the addition > of a jump target? > > err = alloc_ud_wq_attr(qp, rdi->dparms.node); > if (err) { > ret = (ERR_PTR(err)); > - goto bail_driver_priv; > + goto bail_free_rq; > } > > … > > bail_rq_wq: > - rvt_free_rq(&qp->r_rq); > free_ud_wq_attr(qp); > + > +bail_free_rq: > + rvt_free_rq(&qp->r_rq); > > bail_driver_priv:
The improvement of affected implementation details is continued with another update suggestion.
RDMA/rvt: Fix potential memory leak caused by rvt_alloc_rq https://lore.kernel.org/linux-rdma/20200614041148.131983-1-pakki001@umn.edu/ https://lore.kernel.org/patchwork/patch/1255709/
Regards, Markus
| |