phy_mii_ioctl() could fail when writing to the bus via mdiobus_write(). The fix adds a check and returns an error in case of failure.
Signed-off-by: Aditya Pakki <pakki...@umn.edu> --- drivers/net/phy/phy.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 1d73ac3309ce..1fbdaa96b36e 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -397,6 +397,7 @@ int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd) struct mii_ioctl_data *mii_data = if_mii(ifr); u16 val = mii_data->val_in; bool change_autoneg = false; + int rc; switch (cmd) { case SIOCGMIIPHY: @@ -443,8 +444,10 @@ int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd) } } - mdiobus_write(phydev->mdio.bus, mii_data->phy_id, - mii_data->reg_num, val); + rc = mdiobus_write(phydev->mdio.bus, mii_data->phy_id, + mii_data->reg_num, val); + if (rc) + return rc; if (mii_data->phy_id == phydev->mdio.addr && mii_data->reg_num == MII_BMCR && -- 2.17.1