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 2989745BF5; Sun, 27 Oct 2024 18:12:38 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 51D3940698; Sun, 27 Oct 2024 18:12:04 +0100 (CET) Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) by mails.dpdk.org (Postfix) with ESMTP id ED4D540665 for ; Sun, 27 Oct 2024 18:11:58 +0100 (CET) Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-7ea12e0dc7aso2439964a12.3 for ; Sun, 27 Oct 2024 10:11:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1730049117; x=1730653917; 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=eEV2RrYCoYixOxUZepbWVadtL0TvHWP4uEv4Fw/fypU=; b=UGRZZgbArSaKAe74P3/6yGciEogkQPN0sGGYqbgMHI1/uGGdNzRZGoc5FJSM9J2k0G UMS1gnjXwPXm/I6hIRnMM9N3rB5/SxP8fBbAQLMIOrr5n8DhKwaltF9A8Uv53jbdq/4u De1poqjE6Cqgn7bluexqR4pC7mihPXMQIObpI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730049117; x=1730653917; 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=eEV2RrYCoYixOxUZepbWVadtL0TvHWP4uEv4Fw/fypU=; b=OqfHLyfwqtgV1hJx84uwrf6dhr/yAs0SpcWqyr3bBFplE6TRAQQyQX4e9TFjkBozc2 AkzwnSjb9YMsYzenH4Ljuw2HNtp9Fu/ywgb3QBvyl6HumiCQOCv+JBY/lCK6Z8aMtcHQ /f78AZsV7Br4rEYgE0bpQE0XnhLwdcrfLWEyilWsIEA0gO+KbAFIya/9rIawQrJF/9QM 0SGqxFDD8Rxgehm3lPJKcpz+u5GU8RR6PhtiN0ZR/O9LAo5DLrwG2rwB7WL6SKicpm7z D9RfaAFK6R5s+27SrR4zH46kChNoXdsNVSu25aloAp9FsZr0dmmo4tL7SGRNqHD99sxt Ntjw== X-Gm-Message-State: AOJu0YxXELjNZlZs7WKLEtkLFTkz3H1gRG919JLWcMu8ixwKBitqAUWd wgSwe3p0XP2qxOvYrpAVDosMYLufDJe5XFOa7/agCJsA0xJ+Sz536fwQQXxGZzoS/ubAIwDHdEX aeq6pMooFJo8dOahEglvmd6GNsBPHCVzjE531ePTifqcg2KXS2bHKwAAZn5tW+LWplNuQ+OoMDi 8FSDGyYkXufJXnaa2kldxzNu+SUnKepKU= X-Google-Smtp-Source: AGHT+IHe9P/nZGLQKEzCtbnN1XmLe+QOvMjNRQHcj8yqOmQ7jmaNNLyUAD9BDYsQlNu/IYwiAGSHtQ== X-Received: by 2002:a05:6a21:8cc1:b0:1d7:11af:6a with SMTP id adf61e73a8af0-1d9a84b8d37mr6973495637.37.1730049117393; Sun, 27 Oct 2024 10:11:57 -0700 (PDT) Received: from localhost.localdomain ([136.52.21.78]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72057a21ccesm4269158b3a.167.2024.10.27.10.11.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Oct 2024 10:11:55 -0700 (PDT) From: Ajit Khaparde To: dev@dpdk.org Cc: Kishore Padmanabha , Shahaji Bhosle Subject: [PATCH v2 10/13] net/bnxt: remove the VNIC async event handler Date: Sun, 27 Oct 2024 10:11:25 -0700 Message-Id: <20241027171128.50221-11-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20241027171128.50221-1-ajit.khaparde@broadcom.com> References: <20241027171128.50221-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 ac1d537bc9..c6606e19a8 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)