The following series adds debug prints for fatal QP events that are helpful for finding the root cause of the errors. The ib_get_qp_err_syndrome is called at a work queue since the QP event callback is running on an interrupt context that can't sleep. The functions is especially useful for debugging purposes for few reasons: First of all it provides the information in a human readable way, that would make it easier to identify the bug root cause. Secondly it also allows providing vendor specfic error codes or information that could be very useful to users who know them. Lastly and most importantly the function provides information about the reason the QP moved to error state, in cases where CQE isn't generated and without this feature it would have been way harder to know the root cause of the error. An example of such case would be a remote write with RKEY violation, whereas on the remote side no CQE would be generated but this print allows to know the reason behind the failure. Thanks. Israel Rukshin (1): nvme-rdma: add more error details when a QP moves to an error state Patrisious Haddad (3): net/mlx5: Introduce CQE error syndrome RDMA/core: Introduce ib_get_qp_err_syndrome function RDMA/mlx5: Implement ib_get_qp_err_syndrome drivers/infiniband/core/device.c | 1 + drivers/infiniband/core/verbs.c | 8 +++++ drivers/infiniband/hw/mlx5/main.c | 1 + drivers/infiniband/hw/mlx5/mlx5_ib.h | 1 + drivers/infiniband/hw/mlx5/qp.c | 42 ++++++++++++++++++++++++- drivers/infiniband/hw/mlx5/qp.h | 2 +- drivers/infiniband/hw/mlx5/qpc.c | 4 ++- drivers/nvme/host/rdma.c | 24 ++++++++++++++ include/linux/mlx5/mlx5_ifc.h | 47 +++++++++++++++++++++++++--- include/rdma/ib_verbs.h | 13 ++++++++ 10 files changed, 135 insertions(+), 8 deletions(-) -- 2.18.1