From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2C6CAA052B; Fri, 31 Jul 2020 19:23:38 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C80961C036; Fri, 31 Jul 2020 19:23:18 +0200 (CEST) Received: from mail-ed1-f99.google.com (mail-ed1-f99.google.com [209.85.208.99]) by dpdk.org (Postfix) with ESMTP id E5D5D1C023 for ; Fri, 31 Jul 2020 19:23:14 +0200 (CEST) Received: by mail-ed1-f99.google.com with SMTP id a14so5888963edx.7 for ; Fri, 31 Jul 2020 10:23:14 -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:content-transfer-encoding; bh=6dIoVzIQzF4Uj55wfOZZI5C+oeDP7Aw2xo+7SJFflFM=; b=C2lTazKm4L2t6pUVJhuU5y5YcgxiEb8xqgN8f24i5+NEcDVywlTe+EEtfcy6iGzRxd qkTSkLfxLQZvk1BHa8pRBAcvzzrxQ/YGgVaqN5yaGhdQlWooRVKOyQo+qkF1bII9ygcU bray01pIOANoXyWCVTESeGl71GfMa6KyfUdGw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6dIoVzIQzF4Uj55wfOZZI5C+oeDP7Aw2xo+7SJFflFM=; b=jN1wilJYj/SbvAu6ly2w0F8arECi531+p3YLpW2XxM3YMLPKbFvglwkg5eSE6xL0Uo 9hxMFeauP2r0e5ADAYyWI3OgNfRtkc0BAo4r5SspJQ5KxFGIZOfNl0AbjDJgIwwct9ME IikOLIS3nS9kMnlHP6F7aPU9OVZiYaFtcNdexjBfRok5do/5RxheHSS+gUim5hPi8cBK dA7ODpfx5qWLj+qrxXGkPknHP8rgF2StyO4CLH8bJLm0sSH8jKF5TF5aXAzJGZ5pdY4A GgPzzmLz77BMIMz+iKLPLX8fTanzgTJ4gdshT0EcKfy92OAFuVlRKIxvaVOhASvJS0sK 9P0g== X-Gm-Message-State: AOAM530HoG3hKUYbGFzaw2FUPFERH2UuD0rvR2oRbM5a7Mf0xWjyAjRw MDfgjo0BOaMiGnjA2De6GxKFv+kpbBh9Dj1pGgwPoVXTjsR8Jn/Me6Bm5bnHbuOrOCuITXKy0YM 0mT/fRSklMrqOtgqAkZ5cAp+9iX6p2bCs0GhBl+p1qqlbYCuQIDKX/QcAP5HB3zo9WMViDEtJZS rNSQ== X-Google-Smtp-Source: ABdhPJxXPnKyb0bqg03sk5iRGbgCdaQ+HMX4Pmao8i8Uve7qF3Kbc4OU+h6yLilcYN3aHQBeEe5urrHs6Rb1 X-Received: by 2002:a50:9e8f:: with SMTP id a15mr4665960edf.59.1596216194421; Fri, 31 Jul 2020 10:23:14 -0700 (PDT) Received: from localhost.localdomain ([192.19.223.252]) by smtp-relay.gmail.com with ESMTPS id d2sm75344ejm.71.2020.07.31.10.23.13 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 31 Jul 2020 10:23:14 -0700 (PDT) X-Relaying-Domain: broadcom.com From: Ajit Khaparde To: dev@dpdk.org Cc: ferruh.yigit@intel.com, Somnath Kotur , Venkat Duvvuru Date: Fri, 31 Jul 2020 10:23:01 -0700 Message-Id: <20200731172302.5292-4-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) In-Reply-To: <20200731172302.5292-1-ajit.khaparde@broadcom.com> References: <20200731172302.5292-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v2 3/4] net/bnxt: fix cleanup and check for ulp context alloc X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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: Somnath Kotur Set ulp_ctx explicitly to NULL in ulp_ctx_deinit() so that representor init is aborted if parent ulp context is not initialized. Also check for the same before creation of port default rules. Additional checks in VF rep dev ops for proper parent dev initialization Fixes: 322bd6e70272 ("net/bnxt: add port representor infrastructure") Fixes: 313ac35ac701 ("net/bnxt: support ULP session manager init") Reviewed-by: Venkat Duvvuru Signed-off-by: Somnath Kotur --- drivers/net/bnxt/bnxt_reps.c | 18 ++++++++++++++++++ drivers/net/bnxt/tf_ulp/bnxt_ulp.c | 2 ++ drivers/net/bnxt/tf_ulp/ulp_def_rules.c | 2 +- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/net/bnxt/bnxt_reps.c b/drivers/net/bnxt/bnxt_reps.c index 6fa9a30d2..2941aff7b 100644 --- a/drivers/net/bnxt/bnxt_reps.c +++ b/drivers/net/bnxt/bnxt_reps.c @@ -319,6 +319,7 @@ static int bnxt_vfr_alloc(struct rte_eth_dev *vfr_ethdev) { int rc = 0; struct bnxt_vf_representor *vfr = vfr_ethdev->data->dev_private; + struct bnxt *parent_bp; if (!vfr || !vfr->parent_dev) { PMD_DRV_LOG(ERR, @@ -326,6 +327,13 @@ static int bnxt_vfr_alloc(struct rte_eth_dev *vfr_ethdev) return -ENOMEM; } + parent_bp = vfr->parent_dev->data->dev_private; + if (parent_bp && !parent_bp->ulp_ctx) { + PMD_DRV_LOG(ERR, + "ulp context not allocated for parent\n"); + return -EIO; + } + /* Check if representor has been already allocated in FW */ if (vfr->vfr_tx_cfa_action) return 0; @@ -534,6 +542,11 @@ int bnxt_vf_rep_rx_queue_setup_op(struct rte_eth_dev *eth_dev, return -EINVAL; } + if (!parent_bp->rx_queues) { + PMD_DRV_LOG(ERR, "Parent Rx qs not configured yet\n"); + return -EINVAL; + } + parent_rxq = parent_bp->rx_queues[queue_idx]; if (!parent_rxq) { PMD_DRV_LOG(ERR, "Parent RxQ has not been configured yet\n"); @@ -628,6 +641,11 @@ int bnxt_vf_rep_tx_queue_setup_op(struct rte_eth_dev *eth_dev, return -EINVAL; } + if (!parent_bp->tx_queues) { + PMD_DRV_LOG(ERR, "Parent Tx qs not configured yet\n"); + return -EINVAL; + } + parent_txq = parent_bp->tx_queues[queue_idx]; if (!parent_txq) { PMD_DRV_LOG(ERR, "Parent TxQ has not been configured yet\n"); diff --git a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c index 077527f78..c19cd1d21 100644 --- a/drivers/net/bnxt/tf_ulp/bnxt_ulp.c +++ b/drivers/net/bnxt/tf_ulp/bnxt_ulp.c @@ -884,6 +884,8 @@ bnxt_ulp_deinit(struct bnxt *bp) ulp_session_deinit(session); rte_free(bp->ulp_ctx); + + bp->ulp_ctx = NULL; } /* Function to set the Mark DB into the context */ diff --git a/drivers/net/bnxt/tf_ulp/ulp_def_rules.c b/drivers/net/bnxt/tf_ulp/ulp_def_rules.c index 9fb1a028f..46acc1d65 100644 --- a/drivers/net/bnxt/tf_ulp/ulp_def_rules.c +++ b/drivers/net/bnxt/tf_ulp/ulp_def_rules.c @@ -465,7 +465,7 @@ bnxt_ulp_create_df_rules(struct bnxt *bp) int rc; if (!BNXT_TRUFLOW_EN(bp) || - BNXT_ETH_DEV_IS_REPRESENTOR(bp->eth_dev)) + BNXT_ETH_DEV_IS_REPRESENTOR(bp->eth_dev) || !bp->ulp_ctx) return 0; port_id = bp->eth_dev->data->port_id; -- 2.21.1 (Apple Git-122.3)