IB/rdmavt: Add new completion inline
authorMike Marciniszyn <mike.marciniszyn@intel.com>
Thu, 13 Jun 2019 12:30:44 +0000 (08:30 -0400)
committerDoug Ledford <dledford@redhat.com>
Fri, 21 Jun 2019 02:35:09 +0000 (22:35 -0400)
commitf56044d686c82bd31713fc0398d68e322813dc62
tree8cd490814fcc8812875c395d74bc2f6bce490449
parentdd82e668892ead6fe97c97eabd7ba28e296052c6
IB/rdmavt: Add new completion inline

There is opencoded send completion logic all over all
the drivers.

We need to convert to this routine to enforce ordering
issues for completions.  This routine fixes an ordering
issue where the read of the SWQE fields necessary for creating
the completion can race with a post send if the post send catches
a send queue at the edge of being full.  Is is possible in that situation
to read SWQE fields that are being written.

This new routine insures that SWQE fields are read prior to advancing
the index that post send uses to determine queue fullness.

Reviewed-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
include/rdma/rdmavt_qp.h