[PATCH net-next v3 0/5] net: stmmac: socfpga: fix init ordering and cleanups
Maxime Chevallier
maxime.chevallier at bootlin.com
Fri Apr 18 02:25:11 PDT 2025
Hi Russell,
On Thu, 17 Apr 2025 18:13:24 +0100
"Russell King (Oracle)" <linux at armlinux.org.uk> wrote:
> Hi,
>
> This series fixes the init ordering of the socfpga probe function.
> The standard rule is to do all setup before publishing any device,
> and socfpga violates that. I can see no reason for this, but these
> patches have not been tested on hardware.
>
> Address this by moving the initialisation of dwmac->stmmac_rst
> along with all the other dwmac initialisers - there's no reason
> for this to be late as plat_dat->stmmac_rst has already been
> populated.
>
> Next, replace the call to ops->set_phy_mode() with an init function
> socfpga_dwmac_init() which will then be linked in to plat_dat->init.
>
> Then, add this to plat_dat->init, and switch to stmmac_pltfr_pm_ops
> from the private ops. The runtime suspend/resume socfpga implementations
> are identical to the platform ones, but misses the noirq versions
> which this will add.
>
> Before we swap the order of socfpga_dwmac_init() and
> stmmac_dvr_probe(), we need to change the way the interface is
> obtained, as that uses driver data and the struct net_device which
> haven't been initialised. Save a pointer to plat_dat in the socfpga
> private data, and use that to get the interface mode. We can then swap
> the order of the init and probe functions.
>
> Finally, convert to devm_stmmac_pltfr_probe() by moving the call
> to ops->set_phy_mode() into an init function appropriately populating
> plat_dat->init.
>
> v2: fix oops when calling set_phy_mode() early.
> v3: fix unused variable warnings in patch 2, add Maxime's r-b and t-b
> to all but patch 2.
Looks like they are missing :)
I re-tested the whole V3 series though and gave a fresh look at your
code, so,
Tested-by: Maxime Chevallier <maxime.chevallier at bootlin.com>
Reviewed-by: Maxime Chevallier <maxime.chevallier at bootlin.com>
Thanks !
Maxime
More information about the linux-arm-kernel
mailing list