net: mvpp2: fix NULL pointer dereference in mvpp2_phy_connect
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: 9db60ee470 ("net: mvpp2: Convert netdev_xxx to dev_xxx")
Signed-off-by: Vincent Jardin <vjardin@free.fr>
This commit is contained in:
committed by
Stefan Roese
parent
001f7e5f4c
commit
50b3c87e0e
+2
-2
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user