linux/drivers/infiniband/hw/mlx5
Maor Gottlieb 89ea94a7b6 IB/mlx5: Reset flow support for IB kernel ULPs
The driver exposes interfaces that directly relate to HW state.
Upon fatal error, consumers of these interfaces (ULPs) that rely
on completion of all their posted work-request could hang, thereby
introducing dependencies in shutdown order. To prevent this from
happening, we manage the relevant resources (CQs, QPs) that are used
by the device. Upon a fatal error, we now generate simulated
completions for outstanding WQEs that were not completed at the
time the HW was reset.

It includes invoking the completion event handler for all involved
CQs so that the ULPs will poll those CQs. When polled we return
simulated CQEs with IB_WC_WR_FLUSH_ERR return code enabling ULPs
to clean up their  resources and not wait forever for completions
upon receiving remove_one.

The above change requires an extra check in the data path to make
sure that when device is in error state, the simulated CQEs will
be returned and no further WQEs will be posted.

Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-06-23 11:02:45 -04:00
..
Kconfig net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality 2015-05-30 18:24:51 -07:00
Makefile IB/mlx5: Implement callbacks for manipulating VFs 2016-03-21 17:13:14 -04:00
ah.c IB/mlx5: Add RoCE fields to Address Vector 2015-12-23 12:07:37 -05:00
cq.c IB/mlx5: Reset flow support for IB kernel ULPs 2016-06-23 11:02:45 -04:00
doorbell.c IB/mlx5: Fix Mellanox copyright note 2015-04-02 16:33:42 -04:00
gsi.c IB/mlx5: Eliminate GSI RX QP's send buffers 2016-03-01 11:04:07 -05:00
ib_virt.c IB/mlx5: Implement callbacks for manipulating VFs 2016-03-21 17:13:14 -04:00
mad.c net/mlx5_core: Add VF param when querying vport counter 2016-03-21 17:13:14 -04:00
main.c IB/mlx5: Reset flow support for IB kernel ULPs 2016-06-23 11:02:45 -04:00
mem.c IB/mlx5: Fix Mellanox copyright note 2015-04-02 16:33:42 -04:00
mlx5_ib.h IB/mlx5: Reset flow support for IB kernel ULPs 2016-06-23 11:02:45 -04:00
mr.c IB/mlx5: Reset flow support for IB kernel ULPs 2016-06-23 11:02:45 -04:00
odp.c net/mlx5: Refactor mlx5_core_mr to mkey 2016-03-01 11:18:37 -05:00
qp.c IB/mlx5: Reset flow support for IB kernel ULPs 2016-06-23 11:02:45 -04:00
srq.c IB/mlx5: Reset flow support for IB kernel ULPs 2016-06-23 11:02:45 -04:00
user.h IB/mlx5: Add RSS QP support 2016-06-23 11:02:44 -04:00