From patchwork Thu Nov 4 21:58:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 103808 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7751DA0C5E; Thu, 4 Nov 2021 23:01:32 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2458A42823; Thu, 4 Nov 2021 22:59:28 +0100 (CET) Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by mails.dpdk.org (Postfix) with ESMTP id 1B791427B0 for ; Thu, 4 Nov 2021 22:59:23 +0100 (CET) Received: by mail-pl1-f182.google.com with SMTP id b13so9600235plg.2 for ; Thu, 04 Nov 2021 14:59:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version; bh=zs9HbDebpuyWbi8/dEAwr/vdnVDPmvVR57J1hZLT0y0=; b=KVG/s8deuqJ7vOJy6TRkQGq1Y4KWFGJPx5zMWKtTlsfMh1Oxpy54JgK0fme2a2JZZR N28J+JqKefmvt86VL9pYqJ/jvw3WjtRCE+xa/ow+3CaM6NwF+Nczp9JZHA4+b29jA4WB ujZyur1CzQ6oQlfHddE4PKEj4leY26QAFesrE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version; bh=zs9HbDebpuyWbi8/dEAwr/vdnVDPmvVR57J1hZLT0y0=; b=Ey+Fuie7OoCaKKKpHOjYXzjJNE4MrRIcqrz59Wt3TdGvC/G0fFWAvCCh9PZrIbV8jE HQpnaJvg6fgDayVjdOC8ezwDFPiVE8BAxsjtpBJMdPESWr8elTzAZLzJFMTxYx9W8AF7 3SEE2KwBbZI+TlIm368pZJDPWcIZl1HR52ygH+triwRanuRPs0Q3tGmp+DvvC4iUC4j2 huKHyreAs16rfc7NKPaqDQnLF+JDLXAVsePA73vDB0zB1x6fy1aG7Pr5GmPgoDykz97X KK1qfEH3nkipr5mMMI/x5tNKMyrH0hkf44bCVpQDUxmIYYVynfKIPIfgsU6peN/LuR38 zYWw== X-Gm-Message-State: AOAM532kKclIze3istZxYWXZKg8RLj04/jN8O5k7BgDeu+YunEsx4FWs BYzBs1hgJEJCGySxoONlcTh90jgFzxnpyYAb0jsgm+9p1/ROL541nc/JIIDbgTuXqZenpTkq+aA jjhDXDPJO7Fo8FfG1Dj94FYbyS2g2wnapHAUM1TvYjgop+PmdqHvy03ikcng15G0= X-Google-Smtp-Source: ABdhPJzEHd56Tldjmk921Y1FwUUwfMcTrDnol+q+EuqkAlYMQ5gVlGutuOv8t5W7mfzAFRvUp/aZHA== X-Received: by 2002:a17:902:ce8c:b0:141:d411:7e25 with SMTP id f12-20020a170902ce8c00b00141d4117e25mr33050465plg.85.1636063162023; Thu, 04 Nov 2021 14:59:22 -0700 (PDT) Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id pg5sm8532242pjb.26.2021.11.04.14.59.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Nov 2021 14:59:20 -0700 (PDT) From: Ajit Khaparde To: dev@dpdk.org Cc: Jay Ding , Steve Rempe , Farah Smith Date: Thu, 4 Nov 2021 14:58:46 -0700 Message-Id: <20211104215846.58672-23-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) In-Reply-To: <20211104215846.58672-1-ajit.khaparde@broadcom.com> References: <20211103005251.25524-1-ajit.khaparde@broadcom.com> <20211104215846.58672-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [dpdk-dev] [PATCH v5 22/22] net/bnxt: use enum for bank ID X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Jay Ding Instead of integer, using enum tf_sram_bank_id for bank id in tf_set_sram_policy_parms. Add index check against the allocation of the meter instance for meter drop count because there is no reason to access it if the corresponding meter entry is not allocated. Signed-off-by: Jay Ding Reviewed-by: Steve Rempe Reviewed-by: Farah Smith Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/tf_core/tf_core.h | 4 +- drivers/net/bnxt/tf_core/tf_device.h | 4 +- drivers/net/bnxt/tf_core/tf_device_p58.c | 10 ++-- drivers/net/bnxt/tf_core/tf_tbl.c | 75 ++++++++++++------------ 4 files changed, 47 insertions(+), 46 deletions(-) diff --git a/drivers/net/bnxt/tf_core/tf_core.h b/drivers/net/bnxt/tf_core/tf_core.h index b2886355fa..f891d7a48f 100644 --- a/drivers/net/bnxt/tf_core/tf_core.h +++ b/drivers/net/bnxt/tf_core/tf_core.h @@ -2520,7 +2520,7 @@ struct tf_set_sram_policy_parms { /** * [in] Array of Bank id for each truflow tbl type */ - uint8_t *bank_id; + enum tf_sram_bank_id bank_id[TF_TBL_TYPE_ACT_MODIFY_64B + 1]; }; /** @@ -2552,7 +2552,7 @@ struct tf_get_sram_policy_parms { /** * [out] Array of Bank id for each truflow tbl type */ - uint8_t bank_id[TF_TBL_TYPE_ACT_MODIFY_64B + 1]; + enum tf_sram_bank_id bank_id[TF_TBL_TYPE_ACT_MODIFY_64B + 1]; }; /** diff --git a/drivers/net/bnxt/tf_core/tf_device.h b/drivers/net/bnxt/tf_core/tf_device.h index 3d5de988c4..bfb5de4370 100644 --- a/drivers/net/bnxt/tf_core/tf_device.h +++ b/drivers/net/bnxt/tf_core/tf_device.h @@ -1116,7 +1116,7 @@ struct tf_dev_ops { * - (-EINVAL) on failure. */ int (*tf_dev_set_sram_policy)(enum tf_dir dir, - uint8_t *bank_id); + enum tf_sram_bank_id *bank_id); /** * Device specific function that gets the sram policy @@ -1132,7 +1132,7 @@ struct tf_dev_ops { * - (-EINVAL) on failure. */ int (*tf_dev_get_sram_policy)(enum tf_dir dir, - uint8_t *bank_id); + enum tf_sram_bank_id *bank_id); }; /** diff --git a/drivers/net/bnxt/tf_core/tf_device_p58.c b/drivers/net/bnxt/tf_core/tf_device_p58.c index 3c1c3a2de1..30c0af7eef 100644 --- a/drivers/net/bnxt/tf_core/tf_device_p58.c +++ b/drivers/net/bnxt/tf_core/tf_device_p58.c @@ -673,7 +673,7 @@ static int tf_dev_p58_get_sram_resources(void *q, return 0; } -int sram_bank_hcapi_type[] = { +static int sram_bank_hcapi_type[] = { CFA_RESOURCE_TYPE_P58_SRAM_BANK_0, CFA_RESOURCE_TYPE_P58_SRAM_BANK_1, CFA_RESOURCE_TYPE_P58_SRAM_BANK_2, @@ -694,15 +694,15 @@ int sram_bank_hcapi_type[] = { * - (-EINVAL) on failure. */ static int tf_dev_p58_set_sram_policy(enum tf_dir dir, - uint8_t *bank_id) + enum tf_sram_bank_id *bank_id) { struct tf_rm_element_cfg *rm_cfg = tf_tbl_p58[dir]; uint8_t type; uint8_t parent[TF_SRAM_BANK_ID_MAX] = { 0xFF, 0xFF, 0xFF, 0xFF }; for (type = TF_TBL_TYPE_FULL_ACT_RECORD; - type < TF_TBL_TYPE_ACT_MODIFY_64B + 1; type++) { - if (bank_id[type] > 3) + type <= TF_TBL_TYPE_ACT_MODIFY_64B; type++) { + if (bank_id[type] >= TF_SRAM_BANK_ID_MAX) return -EINVAL; rm_cfg[type].hcapi_type = sram_bank_hcapi_type[bank_id[type]]; @@ -735,7 +735,7 @@ static int tf_dev_p58_set_sram_policy(enum tf_dir dir, * - (-EINVAL) on failure. */ static int tf_dev_p58_get_sram_policy(enum tf_dir dir, - uint8_t *bank_id) + enum tf_sram_bank_id *bank_id) { struct tf_rm_element_cfg *rm_cfg = tf_tbl_p58[dir]; uint8_t type; diff --git a/drivers/net/bnxt/tf_core/tf_tbl.c b/drivers/net/bnxt/tf_core/tf_tbl.c index 3fb22b52ac..f18e4ba346 100644 --- a/drivers/net/bnxt/tf_core/tf_tbl.c +++ b/drivers/net/bnxt/tf_core/tf_tbl.c @@ -307,28 +307,28 @@ tf_tbl_set(struct tf *tfp, } tbl_db = (struct tbl_rm_db *)tbl_db_ptr; - - /* Do not check meter drop counter because it is not allocated - * resources + /* Verify that the entry has been previously allocated. + * for meter drop counter, check the corresponding meter + * entry */ - if (parms->type != TF_TBL_TYPE_METER_DROP_CNT) { - /* Verify that the entry has been previously allocated */ - aparms.rm_db = tbl_db->tbl_db[parms->dir]; + aparms.rm_db = tbl_db->tbl_db[parms->dir]; + if (parms->type != TF_TBL_TYPE_METER_DROP_CNT) aparms.subtype = parms->type; - aparms.allocated = &allocated; - aparms.index = parms->idx; - rc = tf_rm_is_allocated(&aparms); - if (rc) - return rc; + else + aparms.subtype = TF_TBL_TYPE_METER_INST; + aparms.allocated = &allocated; + aparms.index = parms->idx; + rc = tf_rm_is_allocated(&aparms); + if (rc) + return rc; - if (allocated != TF_RM_ALLOCATED_ENTRY_IN_USE) { - TFP_DRV_LOG(ERR, - "%s, Invalid or not allocated, type:%s, idx:%d\n", - tf_dir_2_str(parms->dir), - tf_tbl_type_2_str(parms->type), - parms->idx); - return -EINVAL; - } + if (allocated != TF_RM_ALLOCATED_ENTRY_IN_USE) { + TFP_DRV_LOG(ERR, + "%s, Invalid or not allocated, type:%s, idx:%d\n", + tf_dir_2_str(parms->dir), + tf_tbl_type_2_str(parms->type), + parms->idx); + return -EINVAL; } /* Set the entry */ @@ -398,27 +398,28 @@ tf_tbl_get(struct tf *tfp, } tbl_db = (struct tbl_rm_db *)tbl_db_ptr; - /* Do not check meter drop counter because it is not allocated - * resources. + /* Verify that the entry has been previously allocated. + * for meter drop counter, check the corresponding meter + * entry */ - if (parms->type != TF_TBL_TYPE_METER_DROP_CNT) { - /* Verify that the entry has been previously allocated */ - aparms.rm_db = tbl_db->tbl_db[parms->dir]; + aparms.rm_db = tbl_db->tbl_db[parms->dir]; + if (parms->type != TF_TBL_TYPE_METER_DROP_CNT) aparms.subtype = parms->type; - aparms.index = parms->idx; - aparms.allocated = &allocated; - rc = tf_rm_is_allocated(&aparms); - if (rc) - return rc; + else + aparms.subtype = TF_TBL_TYPE_METER_INST; + aparms.index = parms->idx; + aparms.allocated = &allocated; + rc = tf_rm_is_allocated(&aparms); + if (rc) + return rc; - if (allocated != TF_RM_ALLOCATED_ENTRY_IN_USE) { - TFP_DRV_LOG(ERR, - "%s, Invalid or not allocated index, type:%s, idx:%d\n", - tf_dir_2_str(parms->dir), - tf_tbl_type_2_str(parms->type), - parms->idx); - return -EINVAL; - } + if (allocated != TF_RM_ALLOCATED_ENTRY_IN_USE) { + TFP_DRV_LOG(ERR, + "%s, Invalid or not allocated index, type:%s, idx:%d\n", + tf_dir_2_str(parms->dir), + tf_tbl_type_2_str(parms->type), + parms->idx); + return -EINVAL; } /* Set the entry */