From 29fd05367349c7909949206a13092031b689eca7 Mon Sep 17 00:00:00 2001 From: Lang Cheng Date: Tue, 30 Nov 2021 20:46:14 +0800 Subject: libhns: Add vendor_err information for error WC ULP can get more error information of CQ though verbs. Signed-off-by: Lang Cheng Signed-off-by: Wenpeng Liang --- providers/hns/hns_roce_u_hw_v2.c | 3 +++ providers/hns/hns_roce_u_hw_v2.h | 3 +++ 2 files changed, 6 insertions(+) diff --git a/providers/hns/hns_roce_u_hw_v2.c b/providers/hns/hns_roce_u_hw_v2.c index b13b6dc..18399e9 100644 --- a/providers/hns/hns_roce_u_hw_v2.c +++ b/providers/hns/hns_roce_u_hw_v2.c @@ -186,6 +186,9 @@ static void handle_error_cqe(struct hns_roce_v2_cqe *cqe, struct ibv_wc *wc, break; } } + + wc->vendor_err = roce_get_field(cqe->byte_16, CQE_BYTE_16_SUB_STATUS_M, + CQE_BYTE_16_SUB_STATUS_S); } static struct hns_roce_v2_cqe *get_cqe_v2(struct hns_roce_cq *cq, int entry) diff --git a/providers/hns/hns_roce_u_hw_v2.h b/providers/hns/hns_roce_u_hw_v2.h index 51a1df4..014cb8c 100644 --- a/providers/hns/hns_roce_u_hw_v2.h +++ b/providers/hns/hns_roce_u_hw_v2.h @@ -184,6 +184,9 @@ struct hns_roce_v2_cqe { #define CQE_BYTE_16_LCL_QPN_S 0 #define CQE_BYTE_16_LCL_QPN_M (((1UL << 24) - 1) << CQE_BYTE_16_LCL_QPN_S) +#define CQE_BYTE_16_SUB_STATUS_S 24 +#define CQE_BYTE_16_SUB_STATUS_M (((1UL << 8) - 1) << CQE_BYTE_16_SUB_STATUS_S) + #define CQE_BYTE_28_SMAC_S 0 #define CQE_BYTE_28_SMAC_M (((1UL << 16) - 1) << CQE_BYTE_28_SMAC_S) -- 2.27.0