Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp6914291rwd; Tue, 6 Jun 2023 03:59:43 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4GwbPyDCV29c6xyUUHO0l1EbDBGfS+PIbaYqWrvNYbjgmY7oL8eLutwpOZAINYpIULgyL9 X-Received: by 2002:a05:6214:dc2:b0:628:8185:bd6e with SMTP id 2-20020a0562140dc200b006288185bd6emr2407557qvt.5.1686049183793; Tue, 06 Jun 2023 03:59:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686049183; cv=none; d=google.com; s=arc-20160816; b=L692ogh56PUSP6dGgDOfNineM9YoMb4ARxjteMykzuM+WvPVIGJmr4uFToacTQl+XF KCFH4RrhMUt1cwQCSfF8xgGj/d4IuowXOE74fs5euZydL8Ukmi+AI9o6imPsqa/osDgc 2TSTWZaroC+bTaScdavfPQvg4vabbJN1GEYNdbqTzxEHor/vIeaCk/cEN5Bpz33Du4sk WKXDqmq0Y5lC4D8xvY53jQZpecKwK9zH9RmaxUT+x+WealDqXv6VyhK8yFA03xA69nH3 9LfPjBMAxTarhQC1hgdmMxrhDFcqbfpwBoav3b5fqjKKxI9G41SMk/DzjmgDA7aTQqGw 8Y0w== 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=PP+oq9SiF87lBNI6tats4jiuMD4acRFhfDstaMQqkVg=; b=qDHAvwaDFhorcJmRo0hPPB0wmmB5AN4RX/NQj8KUiOczK9gkl8dw+dPKHFXuUzTImL U9DEBhPR8iLhT/zYtss16ZTlusG/YYt+ntHELw7dSU+Ga4EQgVH9OhWWd0mKsFOvdZDB SpPQYUWSrZ/ZbDnSE5sp+ca9zSvpOitI4Zdr29ZbuMNqKcxFb43yQzAoSyWZi/fByNPB mxd4V8nglyr58/vaJCtW/6h8ansE4pp6/uCeKTIwPesIVd9SiNvkiOIb2/qlNGfCUV5a xGjYoVLnXdqcYSW+jXPyIqwj8pK94sBdwDdWb9vKI7nQs1M60M1iZt4VvkGmg2jZqNKf KWqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail (test mode) header.i=@armlinux.org.uk header.s=pandora-2019 header.b="O86TfGr/"; 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 fo13-20020ad45f0d000000b006262e4d4293si6106384qvb.179.2023.06.06.03.59.30; Tue, 06 Jun 2023 03:59:43 -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="O86TfGr/"; 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 S234154AbjFFK0a (ORCPT + 99 others); Tue, 6 Jun 2023 06:26:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49050 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232883AbjFFK0W (ORCPT ); Tue, 6 Jun 2023 06:26:22 -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 5E9B0E6E; Tue, 6 Jun 2023 03:26:21 -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=PP+oq9SiF87lBNI6tats4jiuMD4acRFhfDstaMQqkVg=; b=O86TfGr/JsGqU9JoWtD9rq4e0D WdU4OjJMOzATtHlzH3FDupVbiJ7nUkC6KSBCwa4M4K7GjTf37SSjKRKR+Eu4lKU/3EIZpxcNP+pO4 JUCBx/hIz8FEY4gK+0vjBTzKwYzLC7gLew9VzYmYD9Rkh3BDb3JtitiGfZJqOPXvckqLFA8KGl3Gq I0hbxK3KLdfmiU6nLTIpOJn/bxOYBrW72lk2fo1evKo9BAshGWcmIgreYmGUZ2kSkEDrBX7Kf3Tyd dXMg6lTpW6nZwIZuRxXI2DNKE8/sp52vLFUBDIdzxXjdoYZu80iFbbrSyUTIcLHz5q+HgNvugkSOY H4JCJOIw==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:41340) 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 1q6TtH-0005Sx-DX; Tue, 06 Jun 2023 11:26:15 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1q6TtE-00073O-Cm; Tue, 06 Jun 2023 11:26:12 +0100 Date: Tue, 6 Jun 2023 11:26:12 +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: <20230606121311.3cc5aa78@pc-7.home> 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 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; - return NULL; } -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!