net: phy: micrel: fix config_intr error handling
Make sure never to update the control register with random data (an error code) by checking the return value after reading it. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c88c7d3204
commit
5bb8fc0d10
1 changed files with 6 additions and 0 deletions
|
@ -122,6 +122,8 @@ static int kszphy_config_intr(struct phy_device *phydev)
|
|||
|
||||
/* set the interrupt pin active low */
|
||||
temp = phy_read(phydev, MII_KSZPHY_CTRL);
|
||||
if (temp < 0)
|
||||
return temp;
|
||||
temp &= ~KSZPHY_CTRL_INT_ACTIVE_HIGH;
|
||||
phy_write(phydev, MII_KSZPHY_CTRL, temp);
|
||||
rc = kszphy_set_interrupt(phydev);
|
||||
|
@ -134,6 +136,8 @@ static int ksz9021_config_intr(struct phy_device *phydev)
|
|||
|
||||
/* set the interrupt pin active low */
|
||||
temp = phy_read(phydev, MII_KSZPHY_CTRL);
|
||||
if (temp < 0)
|
||||
return temp;
|
||||
temp &= ~KSZ9021_CTRL_INT_ACTIVE_HIGH;
|
||||
phy_write(phydev, MII_KSZPHY_CTRL, temp);
|
||||
rc = kszphy_set_interrupt(phydev);
|
||||
|
@ -146,6 +150,8 @@ static int ks8737_config_intr(struct phy_device *phydev)
|
|||
|
||||
/* set the interrupt pin active low */
|
||||
temp = phy_read(phydev, MII_KSZPHY_CTRL);
|
||||
if (temp < 0)
|
||||
return temp;
|
||||
temp &= ~KS8737_CTRL_INT_ACTIVE_HIGH;
|
||||
phy_write(phydev, MII_KSZPHY_CTRL, temp);
|
||||
rc = kszphy_set_interrupt(phydev);
|
||||
|
|
Loading…
Reference in a new issue