Commit 0194b645 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by Jakub Kicinski

net: phy: improve phy_read_poll_timeout

cond sometimes is (val & MASK) what may result in a false positive
if val is a negative errno. We shouldn't evaluate cond if val < 0.
This has no functional impact here, but it's not nice.
Therefore switch order of the checks.
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/6d8274ac-4344-23b4-d9a3-cad4c39517d4@gmail.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 36e5e391
...@@ -1130,16 +1130,15 @@ static inline int phy_read(struct phy_device *phydev, u32 regnum) ...@@ -1130,16 +1130,15 @@ static inline int phy_read(struct phy_device *phydev, u32 regnum)
#define phy_read_poll_timeout(phydev, regnum, val, cond, sleep_us, \ #define phy_read_poll_timeout(phydev, regnum, val, cond, sleep_us, \
timeout_us, sleep_before_read) \ timeout_us, sleep_before_read) \
({ \ ({ \
int __ret = read_poll_timeout(phy_read, val, (cond) || val < 0, \ int __ret = read_poll_timeout(phy_read, val, val < 0 || (cond), \
sleep_us, timeout_us, sleep_before_read, phydev, regnum); \ sleep_us, timeout_us, sleep_before_read, phydev, regnum); \
if (val < 0) \ if (val < 0) \
__ret = val; \ __ret = val; \
if (__ret) \ if (__ret) \
phydev_err(phydev, "%s failed: %d\n", __func__, __ret); \ phydev_err(phydev, "%s failed: %d\n", __func__, __ret); \
__ret; \ __ret; \
}) })
/** /**
* __phy_read - convenience function for reading a given PHY register * __phy_read - convenience function for reading a given PHY register
* @phydev: the phy_device struct * @phydev: the phy_device struct
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment