From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DF58545BCB; Fri, 25 Oct 2024 19:58:53 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7D4394066E; Fri, 25 Oct 2024 19:58:09 +0200 (CEST) Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by mails.dpdk.org (Postfix) with ESMTP id 1463A40648 for ; Fri, 25 Oct 2024 19:58:00 +0200 (CEST) Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-20cbcd71012so23351935ad.3 for ; Fri, 25 Oct 2024 10:58:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1729879078; x=1730483878; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Tqe7A5Mrjc8bUj3SwvHqiKe2F5rrv3EFA9uiz/4XM9g=; b=JGOaKFPVFrIqxoHYRXBHXFCl8qmK0wxRUAyj6XewQqZtNn3cUc6QmdKDg5JMwIifUW rXM7Rc7oxWFkndlBzoSdMrHmTPdlRITc98sqmRDAUBuHzM5ww1781fUKscj0Zw9hELPM Dja50aiANzBcqS0UgL8rRGjbUGymTs+teqM3k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729879078; x=1730483878; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Tqe7A5Mrjc8bUj3SwvHqiKe2F5rrv3EFA9uiz/4XM9g=; b=Q2/HnifOLRrhZA0wjL5nGQdsN1ElTiLzy92nwl/PG0w25NFmd91QeVAlIhCPIDS1aM 76JlLtneaOZEloV27RozSlhPYznjCkUwJlakWXhRjvRn9c7CUsOx1oINElPF2h3KOip4 dTX54tzahwQoLl20UWbjZp+Hjwykh2yOA+QOCWGPejO7m9m+lWfuFzDKCw37IskRbibC NerP4m0SMHiEBrreBRn8Y10i78mcfNUZoAjE4P/Yv44QVhxdn/xzdzpT7A2I0zmsKF38 OeQcKK/gmbUOPt6TB9T2PtaSe/LjwdHHGu30Ff8/f93tVYcyPDmJzy8iJ035nPtjFpqy n0Fg== X-Gm-Message-State: AOJu0Yws7IvElssWMSV3gh+YAAjcE374n4DaNJVY897+Cjz5ZBMYamF8 4cZAacyam8AbClavd+CSWoR71GmldRbTjflQ+7bYr9Z/I3zif700tHWzY2/NS8Z+WjmIOl1joqZ qTzOro9eAYS2GWTEdscpyA2z3YDHUE+3LNAZ+IKiVuDqGo7F7lX2BBsTAt28Sqk9qOpGe/p/ICV IuNEj7kUr5S4LzdTWO8DlVjod0O4uKzlI= X-Google-Smtp-Source: AGHT+IHZKOBpv0P6FSKe8kZQfOOdh5bvwN09hUAU0axMMmztfmY/Slnu4ojQC9hzu6TnazHONncMuw== X-Received: by 2002:a17:902:cf04:b0:20c:81f2:3481 with SMTP id d9443c01a7336-20fa9e46b1emr128232465ad.22.1729879078291; Fri, 25 Oct 2024 10:57:58 -0700 (PDT) Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-210bc02ebd8sm11924335ad.210.2024.10.25.10.57.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Oct 2024 10:57:57 -0700 (PDT) From: Ajit Khaparde To: dev@dpdk.org Cc: Kishore Padmanabha , Shahaji Bhosle Subject: [PATCH 10/13] net/bnxt: remove the VNIC async event handler Date: Fri, 25 Oct 2024 10:57:35 -0700 Message-Id: <20241025175738.99564-11-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20241025175738.99564-1-ajit.khaparde@broadcom.com> References: <20241025175738.99564-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 From: Kishore Padmanabha The VNIC async event handler is removed, it is no longer required if during the port initialization if svif is used instead of VNIC which could be invalid for rep port if the rep's VF port link is down. Signed-off-by: Kishore Padmanabha Reviewed-by: Shahaji Bhosle --- drivers/net/bnxt/bnxt_cpr.c | 48 ------------------------------------ drivers/net/bnxt/bnxt_hwrm.c | 21 +++++++++++++--- drivers/net/bnxt/bnxt_reps.c | 4 +-- 3 files changed, 19 insertions(+), 54 deletions(-) diff --git a/drivers/net/bnxt/bnxt_cpr.c b/drivers/net/bnxt/bnxt_cpr.c index 4ffba6f594..ba0d7f4bf7 100644 --- a/drivers/net/bnxt/bnxt_cpr.c +++ b/drivers/net/bnxt/bnxt_cpr.c @@ -47,51 +47,6 @@ void bnxt_wait_for_device_shutdown(struct bnxt *bp) } while (timeout); } -static void -bnxt_process_default_vnic_change(struct bnxt *bp, - struct hwrm_async_event_cmpl *async_cmp) -{ - uint16_t vnic_state, vf_fid, vf_id; - struct bnxt_representor *vf_rep_bp; - struct rte_eth_dev *eth_dev; - bool vfr_found = false; - uint32_t event_data; - - if (!BNXT_TRUFLOW_EN(bp)) - return; - - PMD_DRV_LOG_LINE(INFO, "Default vnic change async event received"); - event_data = rte_le_to_cpu_32(async_cmp->event_data1); - - vnic_state = (event_data & BNXT_DEFAULT_VNIC_STATE_MASK) >> - BNXT_DEFAULT_VNIC_STATE_SFT; - if (vnic_state != BNXT_DEFAULT_VNIC_ALLOC) - return; - - if (!bp->rep_info) - return; - - vf_fid = (event_data & BNXT_DEFAULT_VNIC_CHANGE_VF_ID_MASK) >> - BNXT_DEFAULT_VNIC_CHANGE_VF_ID_SFT; - PMD_DRV_LOG_LINE(INFO, "async event received vf_id 0x%x", vf_fid); - - for (vf_id = 0; vf_id < BNXT_MAX_VF_REPS(bp); vf_id++) { - eth_dev = bp->rep_info[vf_id].vfr_eth_dev; - if (!eth_dev) - continue; - vf_rep_bp = eth_dev->data->dev_private; - if (vf_rep_bp && - vf_rep_bp->fw_fid == vf_fid) { - vfr_found = true; - break; - } - } - if (!vfr_found) - return; - - bnxt_rep_dev_start_op(eth_dev); -} - static void bnxt_handle_event_error_report(struct bnxt *bp, uint32_t data1, uint32_t data2) @@ -278,9 +233,6 @@ void bnxt_handle_async_event(struct bnxt *bp, PMD_DRV_LOG_LINE(INFO, "Port: %u DNC event: data1 %#x data2 %#x", port_id, data1, data2); break; - case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_DEFAULT_VNIC_CHANGE: - bnxt_process_default_vnic_change(bp, async_cmp); - break; case HWRM_ASYNC_EVENT_CMPL_EVENT_ID_ECHO_REQUEST: PMD_DRV_LOG_LINE(INFO, "Port %u: Received fw echo request: data1 %#x data2 %#x", diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 80f7c1a6a1..8dea446e60 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -4336,12 +4336,25 @@ int bnxt_hwrm_get_dflt_vnic_svif(struct bnxt *bp, uint16_t fid, HWRM_CHECK_RESULT(); - if (vnic_id) - *vnic_id = rte_le_to_cpu_16(resp->dflt_vnic_id); - svif_info = rte_le_to_cpu_16(resp->svif_info); - if (svif && (svif_info & HWRM_FUNC_QCFG_OUTPUT_SVIF_INFO_SVIF_VALID)) + if (svif && (svif_info & HWRM_FUNC_QCFG_OUTPUT_SVIF_INFO_SVIF_VALID)) { *svif = svif_info & HWRM_FUNC_QCFG_OUTPUT_SVIF_INFO_SVIF_MASK; + /* When the VF corresponding to the VFR is down at the time of + * VFR conduit creation, the VFR rule will be programmed with + * invalid vnic id because FW will return default vnic id as + * INVALID when queried through FUNC_QCFG. As a result, when + * the VF is brought up, VF won't receive packets because + * INVALID vnic id is already programmed. + * + * Hence, use svif value as vnic id during VFR conduit creation + * as both svif and default vnic id values are same and will + * never change. + */ + if (vnic_id) + *vnic_id = *svif; + } else { + rc = -EINVAL; + } HWRM_UNLOCK(); diff --git a/drivers/net/bnxt/bnxt_reps.c b/drivers/net/bnxt/bnxt_reps.c index 6c431c7dd8..6f5c3f80eb 100644 --- a/drivers/net/bnxt/bnxt_reps.c +++ b/drivers/net/bnxt/bnxt_reps.c @@ -540,12 +540,12 @@ static int bnxt_vfr_free(struct bnxt_representor *vfr) return -ENOMEM; } - parent_bp = vfr->parent_dev->data->dev_private; - if (!parent_bp) { + if (!bnxt_rep_check_parent(vfr)) { PMD_DRV_LOG_LINE(DEBUG, "BNXT Port:%d VFR already freed", vfr->dpdk_port_id); return 0; } + parent_bp = vfr->parent_dev->data->dev_private; /* Check if representor has been already freed in FW */ if (!vfr->vfr_tx_cfa_action) -- 2.39.5 (Apple Git-154)