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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 07D7DCE7B03 for ; Fri, 6 Sep 2024 12:54:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=690hJkBK217OakU19EFY9fs/Kc2GYaKx8HXQ7unUhlQ=; b=HvUoW34SgXmsvos9BrSOFqhNN3 vH76P6f+44/fevqoSLpghY6q3z+SywbVA/69a7aeRmKzptrSeYgfS4t37qM4AihOokrI71evtxVsH yK3N+qwWFKXzwp0sYRq0PuwW8X+e3vAEwWq8LfyDuj+MxQ5+BnbLSZJ+iDqIvGcmoBM5bdyagkroh x8iSwLwqeMvaUcjROzEMWA0Do42a9UEWn3/gYLXRTD7EoRROAHjZ0MyJGbg4RVhS+mwMELF6099Xl pa5mKOEwkorSWEcSU+ISlxAvekc9ZwUogdAF8tsWJCs9yQzbCOBmY8SbjynBxOWu3qUtY7CvaeUFX F6jFXaTw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1smYTY-0000000CF9A-0iFj; Fri, 06 Sep 2024 12:54:08 +0000 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1smYSW-0000000CEpR-0OtD for linux-arm-kernel@lists.infradead.org; Fri, 06 Sep 2024 12:53:05 +0000 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-5c24648e280so182053a12.0 for ; Fri, 06 Sep 2024 05:53:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725627182; x=1726231982; darn=lists.infradead.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=690hJkBK217OakU19EFY9fs/Kc2GYaKx8HXQ7unUhlQ=; b=nthVFH8nolxhCkPS/w1olpK1tpmjUz7fccNp8RnzWYNsyjHh8aM17RL84Ptr8esrEf oLWvC5fWXUccHp8kkkGmqqtRGTSjBtuM5cKUzoha+Tm5ugX5vobOFCEsNAAE6lfAvvuF Cf8LmeLSGQwZRhLJ6HTFfVQdtkX+jn/Doins7hM/CKIGhVkk5raMOIfcJoGXP6/lAt+O 7AG/1DuWMtvpKCwJgleS5KPSPZ2unOwSI2ZLoaC1cwTCyJL29TkeoehLw1rJL4hATlMH 6bXvxh3MkacXD0cKueh2as8gJjVoe5dFbk4glXpUifoArdzUZfip/QypVIQCxAkrTSJl db2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725627182; x=1726231982; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=690hJkBK217OakU19EFY9fs/Kc2GYaKx8HXQ7unUhlQ=; b=Z/2m3Cp9WNZD1TQQS1GOEGeBI0qDbkmMqFNGEcYnaaqFPWZH9kTexzqAZj45kMwT9f kiqaChl5ULz22RWgMbFc00re63+6tGbUP0q48ttxrEJNWbI0wRo8h1WTsCDYbEhzIKSv OOBAhPKEOv9c/U+hz8JPAPyNxey6a0v3M9fnZxKgJ0DSIH7ZZCuys1I3eBcw/WFJ/FPR jSHJ+pnJmgdPh3UZZuX4AQq7d+mxXtnbGT7VkdAWzGsA1AxWEfpUuZwXg+i6EwxVmNlV AOLSshAbKOOPDkZ661zTTjLCFOuTe1IIrIG4Jm7zKUp535LWlUmV7r4POfV2TK+OS86l 4BBQ== X-Forwarded-Encrypted: i=1; AJvYcCV5bm1TPBNTAjPeSbR7SkRoCVByCGJhnxARbEsQp7Qlg+tUlAl7js22v/cZbbBZqMhOvNVuMD0EWjRgAkX6Ieps@lists.infradead.org X-Gm-Message-State: AOJu0Yy0ky63BpY5FCn4dlMlh8ctZ6NJPWFTUQtXUgDN4/DglrGy4ikz /x2ZvX2aXpUXqte7yorwRNyunft6oZYRFDSVjAlCgaPUHmlBtCb2 X-Google-Smtp-Source: AGHT+IFUUlXDd8a581aFfNhl9hEBR8Xj7Vj1SfC+dxLDEYbwn71uSH7PY1/UYC/o4JTGTrHDO3gv+Q== X-Received: by 2002:a05:6402:50c7:b0:5c2:6850:7b2 with SMTP id 4fb4d7f45d1cf-5c3dc7ef8cfmr1030364a12.6.1725627181456; Fri, 06 Sep 2024 05:53:01 -0700 (PDT) Received: from skbuf ([188.25.134.29]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5c3cc56a897sm2426757a12.47.2024.09.06.05.52.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Sep 2024 05:53:00 -0700 (PDT) Date: Fri, 6 Sep 2024 15:52:58 +0300 From: Vladimir Oltean To: Furong Xu <0x1207@gmail.com> Cc: Serge Semin , "David S. Miller" , Alexandre Torgue , Jose Abreu , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Joao Pinto , netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, rmk+kernel@armlinux.org.uk, linux@armlinux.org.uk, xfr@outlook.com, Vladimir Oltean Subject: Re: [PATCH net-next v9 3/7] net: stmmac: refactor FPE verification process Message-ID: <20240906125258.d7rhhcjdic3quqg2@skbuf> References: <13f5833e52a47895864db726f090f323ec691c62.1725597121.git.0x1207@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <13f5833e52a47895864db726f090f323ec691c62.1725597121.git.0x1207@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240906_055304_160879_F3F243BB X-CRM114-Status: GOOD ( 17.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Sep 06, 2024 at 12:55:58PM +0800, Furong Xu wrote: > @@ -5979,44 +5956,29 @@ static int stmmac_set_features(struct net_device *netdev, > static void stmmac_fpe_event_status(struct stmmac_priv *priv, int status) > { > struct stmmac_fpe_cfg *fpe_cfg = &priv->fpe_cfg; > - enum stmmac_fpe_state *lo_state = &fpe_cfg->lo_fpe_state; > - enum stmmac_fpe_state *lp_state = &fpe_cfg->lp_fpe_state; > - bool *hs_enable = &fpe_cfg->hs_enable; > > - if (status == FPE_EVENT_UNKNOWN || !*hs_enable) > - return; > + /* This is interrupt context, just spin_lock() */ > + spin_lock(&fpe_cfg->lock); > > - /* If LP has sent verify mPacket, LP is FPE capable */ > - if ((status & FPE_EVENT_RVER) == FPE_EVENT_RVER) { > - if (*lp_state < FPE_STATE_CAPABLE) > - *lp_state = FPE_STATE_CAPABLE; > + if (!fpe_cfg->pmac_enabled || status == FPE_EVENT_UNKNOWN) > + goto unlock_out; > > - /* If user has requested FPE enable, quickly response */ > - if (*hs_enable) > - stmmac_fpe_send_mpacket(priv, priv->ioaddr, > - fpe_cfg, > - MPACKET_RESPONSE); > - } > + /* LP has sent verify mPacket */ > + if ((status & FPE_EVENT_RVER) == FPE_EVENT_RVER) > + stmmac_fpe_send_mpacket(priv, priv->ioaddr, fpe_cfg, > + MPACKET_RESPONSE); > > - /* If Local has sent verify mPacket, Local is FPE capable */ > - if ((status & FPE_EVENT_TVER) == FPE_EVENT_TVER) { > - if (*lo_state < FPE_STATE_CAPABLE) > - *lo_state = FPE_STATE_CAPABLE; > - } > + /* Local has sent verify mPacket */ > + if ((status & FPE_EVENT_TVER) == FPE_EVENT_TVER && > + fpe_cfg->status != ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED) > + fpe_cfg->status = ETHTOOL_MM_VERIFY_STATUS_VERIFYING; > > - /* If LP has sent response mPacket, LP is entering FPE ON */ > + /* LP has sent response mPacket */ > if ((status & FPE_EVENT_RRSP) == FPE_EVENT_RRSP) > - *lp_state = FPE_STATE_ENTERING_ON; > + fpe_cfg->status = ETHTOOL_MM_VERIFY_STATUS_SUCCEEDED; Nitpick, doesn't affect normal behavior. If the link partner crafts an unsolicited Response mPacket, and we have verify_enabled = false, what we should do is we should ignore it. But what the code does is to transition the state to SUCCEEDED, as if verify_enabled was true. We should ignore FPE_EVENT_RRSP events if we are in the ETHTOOL_MM_VERIFY_STATUS_DISABLED state. Depending on how the maintainers feel, this could also be handled in a subsequent patch. > > - /* If Local has sent response mPacket, Local is entering FPE ON */ > - if ((status & FPE_EVENT_TRSP) == FPE_EVENT_TRSP) > - *lo_state = FPE_STATE_ENTERING_ON; > - > - if (!test_bit(__FPE_REMOVING, &priv->fpe_task_state) && > - !test_and_set_bit(__FPE_TASK_SCHED, &priv->fpe_task_state) && > - priv->fpe_wq) { > - queue_work(priv->fpe_wq, &priv->fpe_task); > - } > +unlock_out: > + spin_unlock(&fpe_cfg->lock); > } > > static void stmmac_common_interrupt(struct stmmac_priv *priv)