]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
net: mvpp2: fix NULL pointer dereference in mvpp2_phy_connect
authorVincent Jardin <vjardin@free.fr>
Tue, 16 Dec 2025 00:53:52 +0000 (01:53 +0100)
committerStefan Roese <stefan.roese@mailbox.org>
Wed, 10 Jun 2026 09:23:26 +0000 (11:23 +0200)
Fix two NULL pointer dereferences in mvpp2_phy_connect():

1. port->phy_dev->dev is used in dev_warn() but
   port->phy_dev is not assigned yet (assigned later at line below).

2. port->phy_dev->dev is used in dev_err() inside
   the "if (!phy_dev)" block, which means phy_dev is NULL.

Both cases would cause a crash if the PHY detection fails or returns
a generic PHY. Use the already available 'dev' parameter instead.

Fixes: 9db60ee470c2 ("net: mvpp2: Convert netdev_xxx to dev_xxx")
Signed-off-by: Vincent Jardin <vjardin@free.fr>
drivers/net/mvpp2.c

index fc137df14c46e97bc6a661973baec2af04980132..ae5920a0201b87434fd67d6f6b8c228bcc4a8140 100644 (file)
@@ -4528,7 +4528,7 @@ static void mvpp2_phy_connect(struct udevice *dev, struct mvpp2_port *port)
                 */
                if (phy_dev &&
                    phy_dev->drv->uid == 0xffffffff) {/* Generic phy */
-                       dev_warn(port->phy_dev->dev,
+                       dev_warn(dev,
                                 "Marking phy as invalid, link will not be checked\n");
                        /* set phy_addr to invalid value */
                        port->phyaddr = PHY_MAX_ADDR;
@@ -4540,7 +4540,7 @@ static void mvpp2_phy_connect(struct udevice *dev, struct mvpp2_port *port)
 
                port->phy_dev = phy_dev;
                if (!phy_dev) {
-                       dev_err(port->phy_dev->dev, "cannot connect to phy\n");
+                       dev_err(dev, "cannot connect to phy\n");
                        return;
                }
                phy_dev->supported &= PHY_GBIT_FEATURES;