diff options
Diffstat (limited to 'drivers/net/phy/phy-core.c')
| -rw-r--r-- | drivers/net/phy/phy-core.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c index 769a076514b0..a4d2d59fceca 100644 --- a/drivers/net/phy/phy-core.c +++ b/drivers/net/phy/phy-core.c @@ -387,7 +387,7 @@ int __phy_read_mmd(struct phy_device *phydev, int devad, u32 regnum)  	if (regnum > (u16)~0 || devad > 32)  		return -EINVAL; -	if (phydev->drv->read_mmd) { +	if (phydev->drv && phydev->drv->read_mmd) {  		val = phydev->drv->read_mmd(phydev, devad, regnum);  	} else if (phydev->is_c45) {  		u32 addr = MII_ADDR_C45 | (devad << 16) | (regnum & 0xffff); @@ -444,7 +444,7 @@ int __phy_write_mmd(struct phy_device *phydev, int devad, u32 regnum, u16 val)  	if (regnum > (u16)~0 || devad > 32)  		return -EINVAL; -	if (phydev->drv->write_mmd) { +	if (phydev->drv && phydev->drv->write_mmd) {  		ret = phydev->drv->write_mmd(phydev, devad, regnum, val);  	} else if (phydev->is_c45) {  		u32 addr = MII_ADDR_C45 | (devad << 16) | (regnum & 0xffff);  |