]> www.infradead.org Git - users/dwmw2/linux.git/commit
IB/{rdmavt, qib, hfi1}: Convert to new completion API
authorMike Marciniszyn <mike.marciniszyn@intel.com>
Thu, 13 Jun 2019 12:30:52 +0000 (08:30 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Sep 2019 06:23:21 +0000 (08:23 +0200)
commitbef755d188f5482221c5253ba3a515e8e93bc944
tree20ce38cf7582c54d627b1325b00b01131df150a1
parent9d3d11319bd20c7d8935f9368dc5566867b5e203
IB/{rdmavt, qib, hfi1}: Convert to new completion API

Convert all completions to use the new completion routine that
fixes a race between post send and completion where fields from
a SWQE can be read after SWQE has been freed.

This patch also addresses issues reported in
https://marc.info/?l=linux-kernel&m=155656897409107&w=2.

The reserved operation path has no need for any barrier.

The barrier for the other path is addressed by the
smp_load_acquire() barrier.

Cc: Andrea Parri <andrea.parri@amarulasolutions.com>
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>
drivers/infiniband/hw/hfi1/rc.c
drivers/infiniband/hw/qib/qib_rc.c
drivers/infiniband/sw/rdmavt/qp.c
include/rdma/rdmavt_qp.h