linux_dsm_epyc7002/drivers/infiniband/hw/mlx5
Yishai Hadas d0e84c0ad3 IB/mlx5: 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>
Reviewed-by: Max Gurtovoy <maxg@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 RDMA: Convert drivers to use sgid_attr instead of sgid_index 2018-06-18 11:11:26 -06:00
cmd.c IB/mlx5: Support RoCE ICRC encapsulated error counter 2018-06-22 08:51:14 -06:00
cmd.h IB/mlx5: Support RoCE ICRC encapsulated error counter 2018-06-22 08:51:14 -06:00
cong.c IB/mlx5: Change debugfs to have per port contents 2018-01-08 11:42:22 -07:00
cq.c Merge branch 'mini_cqe' into git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma for-next 2018-05-29 15:23:18 -06:00
devx.c IB/mlx5: Expose DEVX tree 2018-06-19 10:53:02 -06:00
doorbell.c
gsi.c
ib_rep.c RDMA/mlx5: Update SPDX tags to show proper license 2018-06-05 14:04:20 -06:00
ib_rep.h RDMA/mlx5: Update SPDX tags to show proper license 2018-06-05 14:04:20 -06:00
ib_virt.c
Kconfig infiniband: mlx5: fix build errors when INFINIBAND_USER_ACCESS=m 2018-04-17 19:26:43 -06:00
mad.c IB/mlx5: Route MADs for dual port RoCE 2018-01-08 11:42:23 -07:00
main.c IB/mlx5: Add support for drain SQ & RQ 2018-06-25 14:32:36 -06:00
Makefile IB/mlx5: Introduce DEVX 2018-06-19 10:53:02 -06:00
mem.c
mlx5_ib.h IB/mlx5: Add support for drain SQ & RQ 2018-06-25 14:32:36 -06:00
mr.c RDMA/mlx5: Fix multiple NULL-ptr deref errors in rereg_mr flow 2018-04-27 11:03:15 -04:00
odp.c IB/mlx5: Move locks initialization to the corresponding stage 2018-01-03 17:26:59 -07:00
qp.c IB/mlx5: Add support for drain SQ & RQ 2018-06-25 14:32:36 -06:00
srq.c treewide: kvzalloc() -> kvcalloc() 2018-06-12 16:19:22 -07:00