lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <53FCBBEF.7010906@gmail.com> Date: Tue, 26 Aug 2014 09:55:11 -0700 From: Florian Fainelli <f.fainelli@...il.com> To: Giuseppe Cavallaro <peppe.cavallaro@...com>, netdev@...r.kernel.org CC: Nandini Sharma <nandini.sharma@...com> Subject: Re: [PATCH (net.git)] phy: fix EEE checks inside the phy_init_eee. On 08/26/2014 12:26 AM, Giuseppe Cavallaro wrote: > According to the Std 802.3az if the EEE Adv (Reg 7.60), Link partner ability > (Reg 7.61) and EEE capability (Register 3.20) bits return 0 this means no EEE > is supported. So this patch fixes the checks inside the phy_init_eee function. > > Signed-off-by: Nandini Sharma <nandini.sharma@...com> > Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@...com> Reviewed-by: Florian Fainelli <f.fainelli@...il.com> > --- > drivers/net/phy/phy.c | 18 +++++++++--------- > 1 files changed, 9 insertions(+), 9 deletions(-) > > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c > index c94e2a2..a854d38 100644 > --- a/drivers/net/phy/phy.c > +++ b/drivers/net/phy/phy.c > @@ -1036,31 +1036,31 @@ int phy_init_eee(struct phy_device *phydev, bool clk_stop_enable) > /* First check if the EEE ability is supported */ > eee_cap = phy_read_mmd_indirect(phydev, MDIO_PCS_EEE_ABLE, > MDIO_MMD_PCS, phydev->addr); > - if (eee_cap < 0) > - return eee_cap; > + if (eee_cap <= 0) > + goto eee_exit_err; > > cap = mmd_eee_cap_to_ethtool_sup_t(eee_cap); > if (!cap) > - return -EPROTONOSUPPORT; > + goto eee_exit_err; !cap is most likely not possible anymore now that you are checking that eee_cap <= 0 > > /* Check which link settings negotiated and verify it in > * the EEE advertising registers. > */ > eee_lp = phy_read_mmd_indirect(phydev, MDIO_AN_EEE_LPABLE, > MDIO_MMD_AN, phydev->addr); > - if (eee_lp < 0) > - return eee_lp; > + if (eee_lp <= 0) > + goto eee_exit_err; > > eee_adv = phy_read_mmd_indirect(phydev, MDIO_AN_EEE_ADV, > MDIO_MMD_AN, phydev->addr); > - if (eee_adv < 0) > - return eee_adv; > + if (eee_adv <= 0) > + goto eee_exit_err; > > adv = mmd_eee_adv_to_ethtool_adv_t(eee_adv); > lp = mmd_eee_adv_to_ethtool_adv_t(eee_lp); > idx = phy_find_setting(phydev->speed, phydev->duplex); > if (!(lp & adv & settings[idx].setting)) > - return -EPROTONOSUPPORT; > + goto eee_exit_err; > > if (clk_stop_enable) { > /* Configure the PHY to stop receiving xMII > @@ -1080,7 +1080,7 @@ int phy_init_eee(struct phy_device *phydev, bool clk_stop_enable) > > return 0; /* EEE supported */ > } > - > +eee_exit_err: > return -EPROTONOSUPPORT; > } > EXPORT_SYMBOL(phy_init_eee); > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists