Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp6914032rwd; Tue, 6 Jun 2023 03:59:25 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4R4IwfFZ945EcfbclxGFcI5KVTMkwNKRnSdF2XH+q9x8tGkQkwng5Iw/v222Nhu3EatoSK X-Received: by 2002:ac8:5883:0:b0:3f6:af78:de10 with SMTP id t3-20020ac85883000000b003f6af78de10mr1719279qta.28.1686049164854; Tue, 06 Jun 2023 03:59:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686049164; cv=none; d=google.com; s=arc-20160816; b=SHr403iZgzN4wyE4nc7fOwtfRfNvoi8YnnxyURHCB9CGWvsj4IDpU8JVmhBl+1inoQ LK2niKzlcPvWhdQJioJhdnpGkrSZqN9m6XELBLAUd2M+ESCvHxPJLwUkzjdxhumO09RS czOlA6esYqEmEzcpY2f4J3TuPrEFikE/OIC2t5wOKA0Lw9YBvbfpwBPtdE0DgJvI5GdV OIZsl9FcRRdLqjqDT0HHdy4zhCyGX54tyi2B9vgKGzGFJLl4dRP4Ggw843L1D+l8OKED tyUhvZS/vfUTR0sObM31D3kvcG/k996BagVyVE8d32B2FFVScW/TK1/eZBNwcvSjKvNB REJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=YGQ2Bv3kGFq35R0tej3M/wC9jHmJwxihT/B4NZfZ6TU=; b=p7cBU6947dNvcIl5hrIx8Tu3j0iodfVz+jeE68jFgU/XjcZXgPBjT/L76x0zJbdt61 QtAv7q6qa1oxX+Bz/K0BzYrEEb5K94zHkJu24F+xG7X4/1AQy9A08dU1airN1c+NcPjJ QMpR/Jqsi196XL93oHdJlR5yRJR6ZPLcZvZYa3nuy4yZSy2cAmlyJlf4G1+K36q/nOCI 36gq81jRySehrR2W6dWsOah74UbSPegK3izlZyLRhWm4Qy1MLHSOxlMN3WxJZf+Qiteo ACbJ8/dBloEwQXBc1igzt2A8/6KNcjcdunOE9GRbhoPGPqfeZTU7iJmYApnoqYv86EdL iwdA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail (test mode) header.i=@armlinux.org.uk header.s=pandora-2019 header.b=v4NYY2xY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p19-20020a05622a049300b003e4ce105af5si6059614qtx.534.2023.06.06.03.59.11; Tue, 06 Jun 2023 03:59:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail (test mode) header.i=@armlinux.org.uk header.s=pandora-2019 header.b=v4NYY2xY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236058AbjFFKf2 (ORCPT + 99 others); Tue, 6 Jun 2023 06:35:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56198 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237268AbjFFKfS (ORCPT ); Tue, 6 Jun 2023 06:35:18 -0400 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:32c8:5054:ff:fe00:142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2E0D7BE; Tue, 6 Jun 2023 03:34:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender: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-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=YGQ2Bv3kGFq35R0tej3M/wC9jHmJwxihT/B4NZfZ6TU=; b=v4NYY2xYaGVu/ck2Y1Dcz7cNlc kV6ccR1w7wZ3zHyk7wNy8kFVl5L4IIb0H4cpNfOiVIo/yU2KogUbuTzaEpN6ZEkmposQ4kTBWDq6f yLft8IBYY/FrKMu9YP7ZrITAmtia2J9XFMyO3bKIgbrGCc9EScU7B7ptUlBIzU76Jlc2rGulSriAU 3HuaJAcFIfg3/rbY4094CvBiFtIbCN2lmd9gbgrnA49PlxaJU896mPtv45lWuNrw+YUI8Q7FyufUq Aqqn44QWzzJd3rl+StV2V9GClQwAZ2JyYJ4klpqfNN+Gz5jorCjlDTAuJ2owExjdWuwCLJzNRMySC gdMujS4g==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:54368) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1q6U1X-0005U2-8c; Tue, 06 Jun 2023 11:34:47 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1q6U1U-00073a-73; Tue, 06 Jun 2023 11:34:44 +0100 Date: Tue, 6 Jun 2023 11:34:44 +0100 From: "Russell King (Oracle)" To: Maxime Chevallier Cc: Geert Uytterhoeven , davem@davemloft.net, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, alexis.lothore@bootlin.com, thomas.petazzoni@bootlin.com, Andrew Lunn , Jakub Kicinski , Eric Dumazet , Paolo Abeni , Florian Fainelli , Heiner Kallweit , Vladimir Oltean , Ioana Ciornei , linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, Maxime Coquelin , Jose Abreu , Alexandre Torgue , Giuseppe Cavallaro , Simon Horman Subject: Re: [PATCH net-next 1/2] net: stmmac: Add PCS_LYNX as a dependency for the whole driver Message-ID: References: <20230606064914.134945-1-maxime.chevallier@bootlin.com> <20230606064914.134945-2-maxime.chevallier@bootlin.com> <889297a0-88c3-90df-7752-efa00184859@linux-m68k.org> <20230606121311.3cc5aa78@pc-7.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: Russell King (Oracle) X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 06, 2023 at 11:26:12AM +0100, Russell King (Oracle) wrote: > On Tue, Jun 06, 2023 at 12:13:11PM +0200, Maxime Chevallier wrote: > > Hello Geert, Russell, > > > > On Tue, 6 Jun 2023 10:30:32 +0100 > > "Russell King (Oracle)" wrote: > > > > > On Tue, Jun 06, 2023 at 10:29:20AM +0200, Geert Uytterhoeven wrote: > > > > Hi Maxime, > > > > > > > > On Tue, 6 Jun 2023, Maxime Chevallier wrote: > > > > > Although pcs_lynx is only used on dwmac_socfpga for now, the cleanup > > > > > path is in the generic driver, and triggers build issues for other > > > > > stmmac variants. Make sure we build pcs_lynx in all cases too, as for > > > > > XPCS. > > > > > > > > That seems suboptimal to me, as it needlesly increases kernel size for > > > > people who do not use dwmac_socfpga. Hence I made an alternative patch: > > > > https://lore.kernel/org/7b36ac43778b41831debd5c30b5b37d268512195.1686039915.git.geert+renesas@glider.be > > > > > > A better solution would be to re-architect the removal code so that > > > whatever creates the PCS is also responsible for removing it. > > > > > > Also, dwmac_socfpga nees to be reorganised anyway, because it calls > > > stmmac_dvr_probe() which then goes on to call register_netdev(), > > > publishing the network device, and then after stmmac_dvr_probe(), > > > further device setup is done. As the basic driver probe flow should > > > be setup and then publish, the existing code structure violates that. > > > > > > > I agree that this solution is definitely suboptimal, I wanted mostly to get it > > fixed quickly as this breaks other stmmac variants. > > > > Do we still go on with the current patch (as Geert's has issues) and then > > consider reworking dwmac_socfpga ? > > As Geert himself mentioned, passed on from Arnd: > As pointed out by Arnd, this doesn't work when PCS_LYNX is a loadable > module and STMMAC is built-in: > https://lore.kernel.org/r/11bd37e9-c62e-46ba-9456-8e3b353df28f@app.fastmail.com > > So Geert's solution will just get rid of the build error, but leave the > Lynx PCS undestroyed. I take Geert's comment as a self-nack on his > proposed patch. > > The changes are only in net-next at the moment, and we're at -rc5. > There's probably about 2.5 weeks to get this sorted before the merge > window opens. > > So, we currently have your suggestion. Here's mine as an immediate > fix. This doesn't address all the points I've raised, but should > resolve the immediate issue. > > Untested since I don't have the hardware... (the test build is > running): > > diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c > index e399fccbafe5..239c7e9ed41d 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c > +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c > @@ -494,6 +494,17 @@ static int socfpga_dwmac_probe(struct platform_device *pdev) > return ret; > } > > +static void socfpga_dwmac_remove(struct platform_device *pdev) > +{ > + struct net_device *ndev = platform_get_drvdata(pdev); > + struct stmmac_priv *priv = netdev_priv(ndev); > + struct phylink_pcs *pcs = priv->hw->lynx_pcs; > + > + stmmac_pltfr_remove(pdev); > + > + lynx_pcs_destroy(pcs); > +} > + > #ifdef CONFIG_PM_SLEEP > static int socfpga_dwmac_resume(struct device *dev) > { > @@ -565,7 +576,7 @@ MODULE_DEVICE_TABLE(of, socfpga_dwmac_match); > > static struct platform_driver socfpga_dwmac_driver = { > .probe = socfpga_dwmac_probe, > - .remove_new = stmmac_pltfr_remove, > + .remove_new = socfpga_dwmac_remove, > .driver = { > .name = "socfpga-dwmac", > .pm = &socfpga_dwmac_pm_ops, > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index fa07b0d50b46..1801f8cc8413 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > @@ -940,9 +940,6 @@ static struct phylink_pcs *stmmac_mac_select_pcs(struct phylink_config *config, > if (priv->hw->xpcs) > return &priv->hw->xpcs->pcs; > > - if (priv->hw->lynx_pcs) > - return priv->hw->lynx_pcs; > - This hunk is completely wrong... but I guess you spotted that anyway. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!