From bac18ea2be4d1e903dc1dfe724f30fb9486fd755 Mon Sep 17 00:00:00 2001 From: Venkat Duvvuru Date: Thu, 2 Jul 2020 16:28:29 -0700 Subject: [PATCH] net/bnxt: manage VF to VFR conduit When VF-VFR conduits are created, a mark is added to the mark database. mark_flag indicates whether the mark is valid and has VFR information (VFR_ID bit in mark_flag). Rx path was checking for this VFR_ID bit. However, while adding the mark to the mark database, VFR_ID bit is not set in mark_flag. Signed-off-by: Venkat Duvvuru Reviewed-by: Somnath Kotur Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c b/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c index b3527eccb6..b2c8c349c9 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c +++ b/drivers/net/bnxt/tf_ulp/ulp_mark_mgr.c @@ -18,6 +18,8 @@ BNXT_ULP_MARK_VALID) #define ULP_MARK_DB_ENTRY_IS_INVALID(mark_info) (!((mark_info)->flags &\ BNXT_ULP_MARK_VALID)) +#define ULP_MARK_DB_ENTRY_SET_VFR_ID(mark_info) ((mark_info)->flags |=\ + BNXT_ULP_MARK_VFR_ID) #define ULP_MARK_DB_ENTRY_IS_VFR_ID(mark_info) ((mark_info)->flags &\ BNXT_ULP_MARK_VFR_ID) #define ULP_MARK_DB_ENTRY_IS_GLOBAL_HW_FID(mark_info) ((mark_info)->flags &\ @@ -263,6 +265,9 @@ ulp_mark_db_mark_add(struct bnxt_ulp_context *ctxt, BNXT_TF_DBG(DEBUG, "Set LFID[0x%0x] = 0x%0x\n", fid, mark); mtbl->lfid_tbl[fid].mark_id = mark; ULP_MARK_DB_ENTRY_SET_VALID(&mtbl->lfid_tbl[fid]); + + if (mark_flag & BNXT_ULP_MARK_VFR_ID) + ULP_MARK_DB_ENTRY_SET_VFR_ID(&mtbl->lfid_tbl[fid]); } return 0; -- 2.20.1