linux_dsm_epyc7002/drivers/infiniband/hw/mlx4
Yishai Hadas 1975acd9f3 IB/mlx4: Add support for drain SQ & RQ
This patch follows the logic from ib_core but considers the internal
device state upon executing the involved commands.

Specifically, Upon internal error state modify QP to an error state can
be assumed to be success as each in-progress WR going to be flushed in
error in any case as expected by that modify command.

In addition,
As the drain should never fail the driver makes sure that post_send/recv
will succeed even if the device is already in an internal error state.
As such once the driver will supply the simulated/SW CQEs the CQE for
the drain WR will be handled as well.

In case of an internal error state the CQE for the drain WR may be
completed as part of the main task that handled the error state or by
the task that issued the drain WR.

As the above depends on scheduling the code takes the relevant locks
and actions to make sure that the completion handler for that WR will
always be called after that the post_send/recv were issued but not in
parallel to the other task that handles the error flow.

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-06-25 14:32:36 -06:00
..
ah.c IB/mlx4: Use GID attribute from ah attribute 2018-06-18 11:11:27 -06:00
alias_GUID.c IB/mlx4: Fix some spelling mistakes 2017-08-24 16:27:10 -04:00
cm.c IB/mlx4: Fix CM REQ retries in paravirt mode 2017-07-20 11:20:50 -04:00
cq.c IB/mlx: Set slid to zero in Ethernet completion struct 2018-02-28 12:10:32 -07:00
doorbell.c IB: Refactor umem to use linear SG table 2014-03-04 10:34:28 -08:00
Kconfig net: mellanox: add DEVLINK dependencies 2016-03-03 17:08:59 -05:00
mad.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
main.c IB/mlx4: Add support for drain SQ & RQ 2018-06-25 14:32:36 -06:00
Makefile IB/mlx4: Add iov directory in sysfs under the ib device 2012-09-30 20:33:39 -07:00
mcg.c IB/mlx4: Suppress gcc 7 fall-through complaints 2017-10-14 20:47:06 -04:00
mlx4_ib.h IB/mlx4: Add support for drain SQ & RQ 2018-06-25 14:32:36 -06:00
mr.c IB/mlx4: Mark user MR as writable if actual virtual memory is writable 2018-05-28 11:41:39 -06:00
qp.c IB/mlx4: Add support for drain SQ & RQ 2018-06-25 14:32:36 -06:00
srq.c IB/core: Separate CQ handle in SRQ context 2017-08-29 08:30:16 -04:00
sysfs.c IB/mlx4: fix sprintf format warning 2017-09-13 18:53:15 -07:00