public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: jacky_chou@aspeedtech.com
Cc: Simon Horman <horms@kernel.org>,
	davem@davemloft.net, edumazet@google.com, andrew+netdev@lunn.ch,
	kuba@kernel.org, pabeni@redhat.com, netdev@vger.kernel.org
Subject: Re: [net-next,v2,09/15] net: ftgmac100: Always register the MDIO bus when it exists
Date: Tue, 20 Jan 2026 12:14:07 +0000	[thread overview]
Message-ID: <20260120121407.795529-1-horms@kernel.org> (raw)
In-Reply-To: <20260116-ftgmac-cleanup-v2-9-81f41f01f2a8@aspeedtech.com>

This is an AI-generated review of your patch. The human sending this
email has considered the AI review valid, or at least plausible.
Full review at: https://netdev-ai.bots.linux.dev/ai-review.html
---
net: ftgmac100: Always register the MDIO bus when it exists

This patch moves MDIO bus registration earlier in the probe function
for FARADAY, AST2400, and AST2500 MACs, simplifying the code by
registering it unconditionally when the hardware has an MDIO controller.

Note: These issues appear to be fixed later in the series by commits
8961daa5f2c0 ("Simplify error handling for ftgmac100_setup_mdio") and
046e51399f0f ("Move DT probe into a helper").

> diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
> index f1cb5dc37919..931fdf3d07d1 100644
> --- a/drivers/net/ethernet/faraday/ftgmac100.c
> +++ b/drivers/net/ethernet/faraday/ftgmac100.c
> @@ -1957,6 +1957,14 @@ static int ftgmac100_probe(struct platform_device *pdev)
>  		priv->txdes0_edotr_mask = BIT(15);
>  	}
>
> +	if (priv->mac_id == FTGMAC100_FARADAY ||
> +	    priv->mac_id == FTGMAC100_AST2400 ||
> +	    priv->mac_id == FTGMAC100_AST2500) {
> +		err = ftgmac100_setup_mdio(netdev);
> +		if (err)
> +			goto err_phy_connect;
> +	}

If ftgmac100_setup_mdio() fails after of_mdiobus_register() returns an
error, it calls mdiobus_free(priv->mii_bus) but does not set priv->mii_bus
to NULL. The goto err_phy_connect then leads to ftgmac100_destroy_mdio()
which checks if (!priv->mii_bus) but finds a dangling pointer, resulting
in mdiobus_unregister() on freed memory followed by a double free.

Could this cause a use-after-free and double-free when MDIO registration
fails? The error path in ftgmac100_setup_mdio() frees mii_bus without
clearing the pointer, and err_phy_connect eventually calls
ftgmac100_destroy_mdio() which operates on the stale pointer.

> +
> +	if (np && of_get_property(np, "use-ncsi", NULL)) {
> +		err = ftgmac100_probe_ncsi(netdev, priv, pdev);
> +		if (err)
> +			goto err_setup_mdio;

Since MDIO is now set up before the NCSI probe for FARADAY/AST2400/AST2500,
if ftgmac100_probe_ncsi() fails, the goto err_setup_mdio skips the MDIO
cleanup at ftgmac100_destroy_mdio(). Does this leak the mii_bus allocation
when NCSI probe fails on these MAC variants?

[ ... ]
-- 
pw-bot: changes-requested

This is an AI-generated review. Report issues at https://example.com

  reply	other threads:[~2026-01-20 12:14 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-16  2:09 [PATCH net-next v2 00/15] net: ftgmac100: Various probe cleanups Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 01/15] net: ftgmac100: List all compatibles Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 02/15] net: ftgmac100: Add match data containing MAC ID Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 03/15] net: ftgmac100: Replace all of_device_is_compatible() Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 04/15] net: ftgmac100: Use devm_alloc_etherdev() Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 05/15] net: ftgmac100: Use devm_request_memory_region/devm_ioremap Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 06/15] net: ftgmac100: Use devm_clk_get_enabled Jacky Chou
2026-01-20 12:19   ` [net-next,v2,06/15] " Simon Horman
2026-01-22  5:37     ` Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 07/15] net: ftgmac100: Simplify error handling for ftgmac100_initial_mac Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 08/15] net: ftgmac100: Move NCSI probe code into a helper Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 09/15] net: ftgmac100: Always register the MDIO bus when it exists Jacky Chou
2026-01-20 12:14   ` Simon Horman [this message]
2026-01-20 12:21     ` [net-next,v2,09/15] " Simon Horman
2026-01-20 14:08     ` Andrew Lunn
2026-01-22  7:31       ` Jacky Chou
2026-01-22 13:40         ` Andrew Lunn
2026-01-24 19:31         ` Andrew Lunn
2026-01-29  6:07           ` Jacky Chou
2026-01-29 13:06             ` Andrew Lunn
2026-02-02  5:29               ` Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 10/15] net: ftgmac100: Simplify legacy MDIO setup Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 11/15] net: ftgmac100: Move DT probe into a helper Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 12/15] net: ftgmac100: Remove redundant PHY_POLL Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 13/15] net: ftgmac100: Simplify error handling for ftgmac100_setup_mdio Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 14/15] net: ftgmac100: Simplify condition on HW arbitration Jacky Chou
2026-01-16  2:09 ` [PATCH net-next v2 15/15] net: ftgmac100: Fix wrong netif_napi_del in release Jacky Chou

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260120121407.795529-1-horms@kernel.org \
    --to=horms@kernel.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jacky_chou@aspeedtech.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox