After obtaining the DTB element register, check if the PCIe link is abnormal.<br /> <br />Signed-off-by: Tianhao Zhang <zhang.tianhao2@zte.com.cn> <br />---<br /> drivers/net/zxdh/zxdh_np.c | 8 +++++++-<br /> drivers/net/zxdh/zxdh_np.h | 3 +++<br /> 2 files changed, 10 insertions(+), 1 deletion(-)<br /> <br />diff --git a/drivers/net/zxdh/zxdh_np.c b/drivers/net/zxdh/zxdh_np.c<br />index 024da113e2..89c9283498 100644<br />--- a/drivers/net/zxdh/zxdh_np.c<br />+++ b/drivers/net/zxdh/zxdh_np.c<br />@@ -3698,6 +3698,12 @@ zxdh_np_dtb_queue_unused_item_num_get(uint32_t dev_id,<br />     rc = zxdh_np_reg_read(dev_id, ZXDH_DTB_INFO_QUEUE_BUF_SPACE,<br />         0, queue_id, p_item_num);<br />     ZXDH_COMM_CHECK_DEV_RC(dev_id, rc, "dpp_reg_read");<br />+<br />+    if ((*p_item_num & ZXDH_DTB_SPACE_LEFT_MASK) == ZXDH_DTB_SPACE_LEFT_MASK) {<br />+        PMD_DRV_LOG(ERR, "pcie bar abnormal.");<br />+        return ZXDH_RC_DTB_BAR_ABNORMAL;<br />+    }<br />+     <br />     return rc;<br /> }<br />  <br />@@ -5374,7 +5380,7 @@ zxdh_np_dtb_tab_down_success_status_check(uint32_t dev_id,<br />                 element_id, 0, ZXDH_DTB_TAB_ACK_UNUSED_MASK);<br />             ZXDH_COMM_CHECK_DEV_RC(dev_id, rc, "zxdh_np_dtb_item_ack_wr");<br />  <br />-            return ZXDH_ERR;<br />+            return ZXDH_RC_DTB_OVER_TIME;<br />         }<br />  <br />         rd_cnt++;<br />diff --git a/drivers/net/zxdh/zxdh_np.h b/drivers/net/zxdh/zxdh_np.h<br />index b0823192e7..80eac8de37 100644<br />--- a/drivers/net/zxdh/zxdh_np.h<br />+++ b/drivers/net/zxdh/zxdh_np.h<br />@@ -94,6 +94,7 @@<br /> #define ZXDH_DTB_TAB_ACK_SUCCESS_MASK            (0xff)<br /> #define ZXDH_DTB_TAB_ACK_FAILED_MASK             (0x1)<br /> #define ZXDH_DTB_TAB_ACK_CHECK_VALUE             (0x12345678)<br />+#define ZXDH_DTB_SPACE_LEFT_MASK                 (0x3F)<br />  <br /> #define ZXDH_DTB_TAB_ACK_VLD_SHIFT               (104)<br /> #define ZXDH_DTB_TAB_ACK_STATUS_SHIFT            (96)<br />@@ -321,6 +322,8 @@<br /> #define ZXDH_RC_DTB_DUMP_SIZE_SMALL             (ZXDH_RC_DTB_BASE | 0x16)<br /> #define ZXDH_RC_DTB_SEARCH_VPORT_QUEUE_ZERO     (ZXDH_RC_DTB_BASE | 0x17)<br /> #define ZXDH_RC_DTB_QUEUE_NOT_ENABLE            (ZXDH_RC_DTB_BASE | 0x18)<br />+#define ZXDH_RC_DTB_OVER_TIME                   (ZXDH_RC_DTB_BASE | 0x19)<br />+#define ZXDH_RC_DTB_BAR_ABNORMAL                (ZXDH_RC_DTB_BASE | 0x1a)<br />  <br /> #define ZXDH_RC_CTRLCH_BASE                     (0xf00)<br /> #define ZXDH_RC_CTRLCH_MSG_LEN_ZERO             (ZXDH_RC_CTRLCH_BASE | 0x0)<br />--  <br />2.27.0<br />