From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 06CA1C3DA59 for ; Mon, 22 Jul 2024 15:04:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id C9F4C81139; Mon, 22 Jul 2024 15:04:42 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id lrmyF4UCzKAA; Mon, 22 Jul 2024 15:04:40 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.34; helo=ash.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org C062981132 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1721660680; bh=9d8T8Yfbh9X1bypxH964hBpBuhdwv4RMG9aIGjgGKE0=; h=Date:From:To:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: Cc:From; b=p95MGbXjszh4aJnxh+19mxAjDPGrRtxFuhkiNixDJ04Lgwomi7QXLZ0kJNmyU6Xem pY4ER5N1h9YxFW44B58pyx8XZHTrUccAgfFTylC3yhrQXWUn173IkTM8dGbJsjYQAW lgLxremW+luqx2bp14UQmtBhOO6EU/d66gIw7Gd0gQr2yMWEOR3AAmtXSQAZTVCUxJ 7hA2o0UYhCaddb1Gi4cIZ8xnY6IxlMDTleE8mhRoz1yPpQj+l60R+929PiK7yGstK/ PFyxaE6k9/O4xHcH3meUJ2gCUkHJO3e0wcf6yW1Vt6pjGd70mj7gshtxdDmEnIXGH5 ImzmSVcUDKJcw== Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp1.osuosl.org (Postfix) with ESMTP id C062981132; Mon, 22 Jul 2024 15:04:40 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 22AF11BF31D for ; Mon, 22 Jul 2024 15:04:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 0F5B540448 for ; Mon, 22 Jul 2024 15:04:39 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id KtiQUQhuE_Up for ; Mon, 22 Jul 2024 15:04:38 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=145.40.73.55; helo=sin.source.kernel.org; envelope-from=horms@kernel.org; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp2.osuosl.org B21AB40109 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org B21AB40109 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by smtp2.osuosl.org (Postfix) with ESMTPS id B21AB40109 for ; Mon, 22 Jul 2024 15:04:37 +0000 (UTC) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 27C7DCE0B1A; Mon, 22 Jul 2024 15:04:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C558C116B1; Mon, 22 Jul 2024 15:04:33 +0000 (UTC) Date: Mon, 22 Jul 2024 16:04:31 +0100 From: Simon Horman To: Ahmed Zaki Message-ID: <20240722150431.GK715661@kernel.org> References: <20240710204015.124233-1-ahmed.zaki@intel.com> <20240710204015.124233-13-ahmed.zaki@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240710204015.124233-13-ahmed.zaki@intel.com> X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1721660674; bh=7kkoTuqfC4Oik6634QuQWnmFJIwKloEbGGhIQxEOBhk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Be9pn3q+l/H6+qhD1kJCjzFrlrvkINr5HxkO8Ctlt6QAGi7V1NzJbGFAV/sHkKx2L eLKHIMFaAc4TZp4D67EdrViFiFUxRilJqCsOHu9Xd+RdfT8VOPaLsYaLKc3S98N4oD Ak80NTs5mNiXijLRAHY/e8CMlBER7+wefsnTE/BnhDctECIDHVdXPjyiCPROIJGPo0 sVuKEMH8GqDf2irzkFmYiN5XME+L+K3RC5OjQBzEVtZuMjX8ZDdLQ3rZFgW2xSgv7p MzGFuqXEmACQm+A8qjjgKyYEuXLd02tmzr6l8YnMBJ8sFrGBUm3J0FG1rC4YDKKUHh rb2+1mvZEHEuw== X-Mailman-Original-Authentication-Results: smtp2.osuosl.org; dmarc=pass (p=none dis=none) header.from=kernel.org X-Mailman-Original-Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=Be9pn3q+ Subject: Re: [Intel-wired-lan] [PATCH iwl-next v3 12/13] iavf: refactor add/del FDIR filters X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: netdev@vger.kernel.org, anthony.l.nguyen@intel.com, Marcin Szycik , intel-wired-lan@lists.osuosl.org, Sridhar Samudrala Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" On Wed, Jul 10, 2024 at 02:40:14PM -0600, Ahmed Zaki wrote: > In preparation for a second type of FDIR filters that can be added by > tc-u32, move the add/del of the FDIR logic to be entirely contained in > iavf_fdir.c. > > The iavf_find_fdir_fltr_by_loc() is renamed to iavf_find_fdir_fltr() > to be more agnostic to the filter ID parameter (for now @loc, which is > relevant only to current FDIR filters added via ethtool). > > Reviewed-by: Sridhar Samudrala > Reviewed-by: Marcin Szycik > Signed-off-by: Ahmed Zaki > --- > drivers/net/ethernet/intel/iavf/iavf.h | 5 ++ > .../net/ethernet/intel/iavf/iavf_ethtool.c | 56 ++------------- > drivers/net/ethernet/intel/iavf/iavf_fdir.c | 72 +++++++++++++++++-- > drivers/net/ethernet/intel/iavf/iavf_fdir.h | 7 +- > 4 files changed, 83 insertions(+), 57 deletions(-) > > diff --git a/drivers/net/ethernet/intel/iavf/iavf.h b/drivers/net/ethernet/intel/iavf/iavf.h > index 23a6557fc3db..85bd6a85cf2d 100644 > --- a/drivers/net/ethernet/intel/iavf/iavf.h > +++ b/drivers/net/ethernet/intel/iavf/iavf.h > @@ -444,6 +444,11 @@ struct iavf_adapter { > spinlock_t adv_rss_lock; /* protect the RSS management list */ > }; > > +/* Must be called with fdir_fltr_lock lock held */ > +static inline bool iavf_fdir_max_reached(struct iavf_adapter *adapter) > +{ > + return (adapter->fdir_active_fltr >= IAVF_MAX_FDIR_FILTERS); nit: these parentheses seem unnecessary. > +} > > /* Ethtool Private Flags */ > ... > diff --git a/drivers/net/ethernet/intel/iavf/iavf_fdir.c b/drivers/net/ethernet/intel/iavf/iavf_fdir.c ... > +/** > + * iavf_fdir_del_fltr - delete a flow director filter from the list > + * @adapter: pointer to the VF adapter structure > + * @loc: location to delete. > + * > + * Return: 0 on success or negative errno on failure. > + */ > +int iavf_fdir_del_fltr(struct iavf_adapter *adapter, u32 loc) > +{ > + struct iavf_fdir_fltr *fltr = NULL; > + int err = 0; > + > + spin_lock_bh(&adapter->fdir_fltr_lock); > + fltr = iavf_find_fdir_fltr(adapter, loc); > + > + if (fltr) { > + if (fltr->state == IAVF_FDIR_FLTR_ACTIVE) { > + fltr->state = IAVF_FDIR_FLTR_DEL_REQUEST; > + } else if (fltr->state == IAVF_FDIR_FLTR_INACTIVE) { > + list_del(&fltr->list); > + kfree(fltr); > + adapter->fdir_active_fltr--; > + fltr = NULL; > + } else { > + err = -EBUSY; > + } > + } else if (adapter->fdir_active_fltr) { > + err = -EINVAL; > + } > + > + if (fltr && fltr->state == IAVF_FDIR_FLTR_DEL_REQUEST) > + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_DEL_FDIR_FILTER); It seems that prior to this change the condition and call to iavf_schedule_aq_request were not protected by fdir_fltr_lock, and now they are. If so, is this change intentional. > + > + spin_unlock_bh(&adapter->fdir_fltr_lock); > + return err; > } ... From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DA3D16CD1D for ; Mon, 22 Jul 2024 15:04:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721660675; cv=none; b=ht574S50gwnVuSBEAH2HOXt6d7S8zMNk3guP2simzblBTvXyU5/gdwswiHit+4GT2/D9fdx/oq8yO3Ny7xJQfJ5axi0PMU/GbXLbb52gq1YXv5cfDk5GoNHG3905KY/qi13/JvZ/Tfednr51knP2avG5BVlHDgZVyB1uK13x2cM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721660675; c=relaxed/simple; bh=7kkoTuqfC4Oik6634QuQWnmFJIwKloEbGGhIQxEOBhk=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=CyanJVWpFP0GTUB54k3GtmlH1TopHFfFTB1CXwmUxKdfT11krRL77ZKUA32oKj9Ziu73Ujv5p/+zgFbXs44vRPjkSqLUA/kHo3jxTWLo1YFIVrFqJW+b1+djJahW4q2Sjlf8dCq8jJvGTmuoOCARrFQX6vQUNaSlD6rz+8KauT8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Be9pn3q+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Be9pn3q+" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3C558C116B1; Mon, 22 Jul 2024 15:04:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1721660674; bh=7kkoTuqfC4Oik6634QuQWnmFJIwKloEbGGhIQxEOBhk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Be9pn3q+l/H6+qhD1kJCjzFrlrvkINr5HxkO8Ctlt6QAGi7V1NzJbGFAV/sHkKx2L eLKHIMFaAc4TZp4D67EdrViFiFUxRilJqCsOHu9Xd+RdfT8VOPaLsYaLKc3S98N4oD Ak80NTs5mNiXijLRAHY/e8CMlBER7+wefsnTE/BnhDctECIDHVdXPjyiCPROIJGPo0 sVuKEMH8GqDf2irzkFmYiN5XME+L+K3RC5OjQBzEVtZuMjX8ZDdLQ3rZFgW2xSgv7p MzGFuqXEmACQm+A8qjjgKyYEuXLd02tmzr6l8YnMBJ8sFrGBUm3J0FG1rC4YDKKUHh rb2+1mvZEHEuw== Date: Mon, 22 Jul 2024 16:04:31 +0100 From: Simon Horman To: Ahmed Zaki Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, anthony.l.nguyen@intel.com, Sridhar Samudrala , Marcin Szycik Subject: Re: [PATCH iwl-next v3 12/13] iavf: refactor add/del FDIR filters Message-ID: <20240722150431.GK715661@kernel.org> References: <20240710204015.124233-1-ahmed.zaki@intel.com> <20240710204015.124233-13-ahmed.zaki@intel.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240710204015.124233-13-ahmed.zaki@intel.com> On Wed, Jul 10, 2024 at 02:40:14PM -0600, Ahmed Zaki wrote: > In preparation for a second type of FDIR filters that can be added by > tc-u32, move the add/del of the FDIR logic to be entirely contained in > iavf_fdir.c. > > The iavf_find_fdir_fltr_by_loc() is renamed to iavf_find_fdir_fltr() > to be more agnostic to the filter ID parameter (for now @loc, which is > relevant only to current FDIR filters added via ethtool). > > Reviewed-by: Sridhar Samudrala > Reviewed-by: Marcin Szycik > Signed-off-by: Ahmed Zaki > --- > drivers/net/ethernet/intel/iavf/iavf.h | 5 ++ > .../net/ethernet/intel/iavf/iavf_ethtool.c | 56 ++------------- > drivers/net/ethernet/intel/iavf/iavf_fdir.c | 72 +++++++++++++++++-- > drivers/net/ethernet/intel/iavf/iavf_fdir.h | 7 +- > 4 files changed, 83 insertions(+), 57 deletions(-) > > diff --git a/drivers/net/ethernet/intel/iavf/iavf.h b/drivers/net/ethernet/intel/iavf/iavf.h > index 23a6557fc3db..85bd6a85cf2d 100644 > --- a/drivers/net/ethernet/intel/iavf/iavf.h > +++ b/drivers/net/ethernet/intel/iavf/iavf.h > @@ -444,6 +444,11 @@ struct iavf_adapter { > spinlock_t adv_rss_lock; /* protect the RSS management list */ > }; > > +/* Must be called with fdir_fltr_lock lock held */ > +static inline bool iavf_fdir_max_reached(struct iavf_adapter *adapter) > +{ > + return (adapter->fdir_active_fltr >= IAVF_MAX_FDIR_FILTERS); nit: these parentheses seem unnecessary. > +} > > /* Ethtool Private Flags */ > ... > diff --git a/drivers/net/ethernet/intel/iavf/iavf_fdir.c b/drivers/net/ethernet/intel/iavf/iavf_fdir.c ... > +/** > + * iavf_fdir_del_fltr - delete a flow director filter from the list > + * @adapter: pointer to the VF adapter structure > + * @loc: location to delete. > + * > + * Return: 0 on success or negative errno on failure. > + */ > +int iavf_fdir_del_fltr(struct iavf_adapter *adapter, u32 loc) > +{ > + struct iavf_fdir_fltr *fltr = NULL; > + int err = 0; > + > + spin_lock_bh(&adapter->fdir_fltr_lock); > + fltr = iavf_find_fdir_fltr(adapter, loc); > + > + if (fltr) { > + if (fltr->state == IAVF_FDIR_FLTR_ACTIVE) { > + fltr->state = IAVF_FDIR_FLTR_DEL_REQUEST; > + } else if (fltr->state == IAVF_FDIR_FLTR_INACTIVE) { > + list_del(&fltr->list); > + kfree(fltr); > + adapter->fdir_active_fltr--; > + fltr = NULL; > + } else { > + err = -EBUSY; > + } > + } else if (adapter->fdir_active_fltr) { > + err = -EINVAL; > + } > + > + if (fltr && fltr->state == IAVF_FDIR_FLTR_DEL_REQUEST) > + iavf_schedule_aq_request(adapter, IAVF_FLAG_AQ_DEL_FDIR_FILTER); It seems that prior to this change the condition and call to iavf_schedule_aq_request were not protected by fdir_fltr_lock, and now they are. If so, is this change intentional. > + > + spin_unlock_bh(&adapter->fdir_fltr_lock); > + return err; > } ...