]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: stmmac: dwmac-nuvoton: fix NULL pointer dereference in nvt_set_phy_intf_sel()
authorJoey Lu <a0987203069@gmail.com>
Wed, 6 May 2026 08:46:13 +0000 (16:46 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 7 May 2026 15:41:30 +0000 (08:41 -0700)
priv->dev was never initialized after devm_kzalloc() allocates the
private data structure. When nvt_set_phy_intf_sel() is later invoked
via the phylink interface_select callback, it calls
nvt_gmac_get_delay(priv->dev, ...) which dereferences the NULL pointer.

Fix this by assigning priv->dev = dev immediately after allocation.

Fixes: 4d7c557f58ef ("net: stmmac: dwmac-nuvoton: Add dwmac glue for Nuvoton MA35 family")
Signed-off-by: Joey Lu <a0987203069@gmail.com>
Link: https://patch.msgid.link/20260506084614.192894-2-a0987203069@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-nuvoton.c

index e2240b68ad98d6bb898bb01b2ddfcab8bed5aaae..2ab6ecac64224bfb1d18e3ddf125ce4dcaadc9e7 100644 (file)
@@ -100,6 +100,8 @@ static int nvt_gmac_probe(struct platform_device *pdev)
        if (!priv)
                return dev_err_probe(dev, -ENOMEM, "Failed to allocate private data\n");
 
+       priv->dev = dev;
+
        priv->regmap = syscon_regmap_lookup_by_phandle_args(dev->of_node, "nuvoton,sys",
                                                            1, &priv->macid);
        if (IS_ERR(priv->regmap))