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 AA19245B37; Mon, 14 Oct 2024 13:03:22 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 455AB40664; Mon, 14 Oct 2024 13:03:06 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16]) by mails.dpdk.org (Postfix) with ESMTP id 29EA04027F; Mon, 14 Oct 2024 13:03:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1728903782; x=1760439782; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=7ARCXQ51+ApSE+iI78ajMmcoYpIgv8fG4gDxSjbRDog=; b=ciH94/S5xNRUcSLYZgeVyGYz9z/fjBXkOEFBMTGx+l6QnaVCLEAjaBUE k9d7zrNUSlxRUnoxPw4ePoMoqdcbZgDHF84lkgCml9TtSf1r4New1vPDs 1q+wdIrixVHJisNbBmXj6nLzQlQtQOvZYq69/oujojo/V5CaJUZgMk2LH cOIvJAC7eIAxc31/k4GmpJTMf8Q3b0Qz1KfMsfDlBUEYpZRQ/E/wOuZGQ e8V5Ep9L7a9T4drvqLLWwEGigZTPTJMesIpim2pHRHNkbw50GANC/ZO0S lHktRUmG4+/mSiLNGogsOe+Ac1PTgo4f+U98RcKetPOcOHvxK6KaNAnyh w==; X-CSE-ConnectionGUID: xPVYBNU+RR++1IFPe3jeqg== X-CSE-MsgGUID: GbCP/wHBSFi5bI2zEwxRng== X-IronPort-AV: E=McAfee;i="6700,10204,11222"; a="28340334" X-IronPort-AV: E=Sophos;i="6.11,199,1725346800"; d="scan'208";a="28340334" Received: from fmviesa006.fm.intel.com ([10.60.135.146]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Oct 2024 04:03:01 -0700 X-CSE-ConnectionGUID: 9bECL7qbSJ6a/bru7g7c3w== X-CSE-MsgGUID: LLD9AnzBTT6KAKJALEPkEg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,202,1725346800"; d="scan'208";a="77167102" Received: from unknown (HELO silpixa00401385.ir.intel.com) ([10.237.214.25]) by fmviesa006.fm.intel.com with ESMTP; 14 Oct 2024 04:02:59 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Dave Ertman , stable@dpdk.org, Jacob Keller , Bruce Richardson Subject: [PATCH v2 03/10] net/ice/base: fix VLAN replay after reset Date: Mon, 14 Oct 2024 12:02:07 +0100 Message-ID: <20241014110250.2314727-4-bruce.richardson@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241014110250.2314727-1-bruce.richardson@intel.com> References: <20241011164459.1987538-1-bruce.richardson@intel.com> <20241014110250.2314727-1-bruce.richardson@intel.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: Dave Ertman If there is more than one VLAN defined when any reset that affects the PF is initiated, after the reset rebuild, no traffic will pass on any VLAN but the last one created. This is caused by the iteration though the VLANs during replay each clearing the vsi_map bitmap of the VSI that is being replayed. The problem is that during the replay, the pointer to the vsi_map bitmap is used by each successive vlan to determine if it should be replayed on this VSI. The logic was that the replay of the VLAN would replace the bit in the map before the next VLAN would iterate through. But, since the replay copies the old bitmap pointer to filt_replay_rules and creates a new one for the recreated VLANS, it does not do this, and leaves the old bitmap broken to be used to replay the remaining VLANs. Since the old bitmap will be cleaned up in post replay cleanup, there is no need to alter it and break following VLAN replay, so don't clear the bit. Fixes: c7dd15931183 ("net/ice/base: add virtual switch code") Cc: stable@dpdk.org Signed-off-by: Dave Ertman Signed-off-by: Jacob Keller Signed-off-by: Bruce Richardson --- drivers/net/ice/base/ice_switch.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/net/ice/base/ice_switch.c b/drivers/net/ice/base/ice_switch.c index 96ef26d535..a3786961e6 100644 --- a/drivers/net/ice/base/ice_switch.c +++ b/drivers/net/ice/base/ice_switch.c @@ -10110,8 +10110,6 @@ ice_replay_vsi_fltr(struct ice_hw *hw, struct ice_port_info *pi, if (!itr->vsi_list_info || !ice_is_bit_set(itr->vsi_list_info->vsi_map, vsi_handle)) continue; - /* Clearing it so that the logic can add it back */ - ice_clear_bit(vsi_handle, itr->vsi_list_info->vsi_map); f_entry.fltr_info.vsi_handle = vsi_handle; f_entry.fltr_info.fltr_act = ICE_FWD_TO_VSI; /* update the src in case it is VSI num */ -- 2.43.0