net: phy: fix null dereference in phy_attach_direct
authorColin Foster <colin.foster@in-advantage.com>
Fri, 27 Jan 2023 17:14:27 +0000 (09:14 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 30 Jan 2023 09:24:15 +0000 (09:24 +0000)
Commit bc66fa87d4fd ("net: phy: Add link between phy dev and mac dev")
introduced a link between net devices and phy devices. It fails to check
whether dev is NULL, leading to a NULL dereference error.

Fixes: bc66fa87d4fd ("net: phy: Add link between phy dev and mac dev")
Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy_device.c

index 716870a4499c557eb616389739dc17376f0cefe4..607aa786c8cb4eb4a34fbe6c228cd3b18cb9282c 100644 (file)
@@ -1517,7 +1517,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
         * another mac interface, so we should create a device link between
         * phy dev and mac dev.
         */
-       if (phydev->mdio.bus->parent && dev->dev.parent != phydev->mdio.bus->parent)
+       if (dev && phydev->mdio.bus->parent && dev->dev.parent != phydev->mdio.bus->parent)
                phydev->devlink = device_link_add(dev->dev.parent, &phydev->mdio.dev,
                                                  DL_FLAG_PM_RUNTIME | DL_FLAG_STATELESS);