-----"Leon Romanovsky" <leon@xxxxxxxxxx> wrote: ----- >To: "Bernard Metzler" <bmt@xxxxxxxxxxxxxx> >From: "Leon Romanovsky" <leon@xxxxxxxxxx> >Date: 10/02/2019 03:32PM >Cc: linux-rdma@xxxxxxxxxxxxxxx, bharat@xxxxxxxxxxx, jgg@xxxxxxxx, >nirranjan@xxxxxxxxxxx, krishna2@xxxxxxxxxxx, bvanassche@xxxxxxx >Subject: [EXTERNAL] Re: [[PATCH v2 for-next]] RDMA/siw: Fix SQ/RQ >drain logic > >On Wed, Oct 02, 2019 at 03:14:23PM +0200, Bernard Metzler wrote: >> Storage ULPs (e.g. iSER & NVMeOF) use ib_drain_qp() to >> drain QP/CQ. Current SIW's own drain routines do not properly >> wait until all SQ/RQ elements are completed and reaped >> from the CQ. This may cause touch after free issues. >> New logic relies on generic __ib_drain_sq()/__ib_drain_rq() >> posting a final work request, which SIW immediately flushes >> to CQ. >> >> Fixes: 303ae1cdfdf7 ("rdma/siw: application interface") >> Signed-off-by: Krishnamraju Eraparaju <krishna2@xxxxxxxxxxx> >> Signed-off-by: Bernard Metzler <bmt@xxxxxxxxxxxxxx> >> --- >> drivers/infiniband/sw/siw/siw_main.c | 20 ----- >> drivers/infiniband/sw/siw/siw_verbs.c | 103 >+++++++++++++++++++++----- >> 2 files changed, 86 insertions(+), 37 deletions(-) >> > >I didn't follow after v1 discussion and will be glad to see >changelog, >what is the reason for v2? > Absolutely. Let me resend the patch with below change log. Sorry & best regards, Bernard. v1 -> v2: - Accept SQ and RQ work requests, if QP is in ERROR state. In that case, immediately flush WR's to CQ. This already provides needed functionality to support ib_drain_sq()/ib_drain_rq() without extra state checking in the fast path.