Re: [PATCH net] net: lpc_eth: release the PHY device node reference

From: Simon Horman

Date: Tue Oct 27 2026 - 13:06:49 EST


On Thu, Oct 22, 2026 at 11:59:55PM +0800, Yige Jiang wrote:
> lpc_eth_drv_probe() obtains a reference to phy-handle and stores it in
> pldat->phy_node for lpc_mii_probe(). Neither PHY lookup nor connecting
> the PHY consumes that node reference. The probe error paths and driver
> removal discard the stored pointer without releasing the reference.
>
> Put the node at err_out_dma_unmap, which is reached by both failure
> paths after the phandle lookup, and on remove after unregistering the
> network device and MII bus. Both puts run before free_netdev(), since
> pldat is stored in the netdev private area. Earlier probe failures do
> not pass the new error-path put.
>
> The PHY device reference discussed in the linked review is a different
> reference. This patch only fixes the node reference, which was also
> mentioned in that discussion; it does not repeat the proposed PHY
> device cleanup.
>
> LLM assistance was used for static ownership analysis and drafting of
> this change and its changelog. The review traced get/put pairs, error
> paths and teardown ordering. No runtime reproducer or hardware test
> is available.
>
> Fixes: 3503bf024b3e ("net: lpc_eth: parse phy nodes from device tree")
> Link: https://patchwork.kernel.org/patch/14502432/
> Assisted-by: LLM
> Signed-off-by: Yige Jiang <yigejiang86@xxxxxxxxx>
> ---
> Based on net/main (305deb54c6c2).
> Compile-tested: arm64, GCC 14.2.0, W=1, CONFIG_OF_DYNAMIC=y.
> Both allyesconfig and allmodconfig completed kernel and module builds
> on the unmodified baseline and with this patch. Unchanged objects were
> reused for the patched builds. No new warnings were found compared
> with the baseline, and the changed driver produced no warnings.
> Both configurations used CONFIG_WERROR=n and DEBUG_INFO_NONE=y;
> W=1 diagnostics remained enabled. CONFIG_LPC_ENET was y and m,
> respectively. The unmodified WERROR=y baseline reproduces the earlier
> arm64 syscall-table override-init failure.
> No LPC32xx hardware, runtime or fault-injection test was performed.

Given the absence of run-time testing,
I'm unsure if this is net or net-next material.

But I agree this change is correct.

Reviewed-by: Simon Horman <horms@xxxxxxxxxx>