Add pcie bar channel check after getting dtb space left. Signed-off-by: Tianhao Zhang --- drivers/net/zxdh/zxdh_np.c | 7 +++++++ drivers/net/zxdh/zxdh_np.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/drivers/net/zxdh/zxdh_np.c b/drivers/net/zxdh/zxdh_np.c index 024da113e2..4e2637e1b6 100644 --- a/drivers/net/zxdh/zxdh_np.c +++ b/drivers/net/zxdh/zxdh_np.c @@ -3698,6 +3698,13 @@ zxdh_np_dtb_queue_unused_item_num_get(uint32_t dev_id, rc = zxdh_np_reg_read(dev_id, ZXDH_DTB_INFO_QUEUE_BUF_SPACE, 0, queue_id, p_item_num); ZXDH_COMM_CHECK_DEV_RC(dev_id, rc, "dpp_reg_read"); + + if((*p_item_num & ZXDH_DTB_SPACE_LEFT_MASK) == ZXDH_DTB_SPACE_LEFT_MASK) + { + PMD_DRV_LOG(ERR, "pcie bar abnormal, get dtb space left false."); + return ZXDH_RC_DTB_BAR_ABNORMAL; + } + return rc; } diff --git a/drivers/net/zxdh/zxdh_np.h b/drivers/net/zxdh/zxdh_np.h index b0823192e7..5b9aec9c8f 100644 --- a/drivers/net/zxdh/zxdh_np.h +++ b/drivers/net/zxdh/zxdh_np.h @@ -94,6 +94,7 @@ #define ZXDH_DTB_TAB_ACK_SUCCESS_MASK (0xff) #define ZXDH_DTB_TAB_ACK_FAILED_MASK (0x1) #define ZXDH_DTB_TAB_ACK_CHECK_VALUE (0x12345678) +#define ZXDH_DTB_SPACE_LEFT_MASK (0x3F) #define ZXDH_DTB_TAB_ACK_VLD_SHIFT (104) #define ZXDH_DTB_TAB_ACK_STATUS_SHIFT (96) @@ -321,6 +322,7 @@ #define ZXDH_RC_DTB_DUMP_SIZE_SMALL (ZXDH_RC_DTB_BASE | 0x16) #define ZXDH_RC_DTB_SEARCH_VPORT_QUEUE_ZERO (ZXDH_RC_DTB_BASE | 0x17) #define ZXDH_RC_DTB_QUEUE_NOT_ENABLE (ZXDH_RC_DTB_BASE | 0x18) +#define ZXDH_RC_DTB_BAR_ABNORMAL (ZXDH_RC_DTB_BASE | 0x19) #define ZXDH_RC_CTRLCH_BASE (0xf00) #define ZXDH_RC_CTRLCH_MSG_LEN_ZERO (ZXDH_RC_CTRLCH_BASE | 0x0) -- 2.27.0