diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index ce69c195368c045f5b2f02acc93be47710ee627a..8da7688d704e529c7869b7db682f4c03b8ecd414 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -692,7 +692,8 @@ struct phy_device *phy_connect(struct mii_dev *bus, int addr,
 	struct phy_device *phydev;
 
 	/* Reset the bus */
-	bus->reset(bus);
+	if (bus->reset)
+		bus->reset(bus);
 
 	/* Wait 15ms to make sure the PHY has come out of hard reset */
 	udelay(15000);