net: phy: fix phy_validate_pause
We have valid scenarios where ETHTOOL_LINK_MODE_Pause_BIT doesn't
need to be supported. Therefore extend the first check to check
for rx_pause being set.
See also phy_set_asym_pause:
rx=0 and tx=1: advertise asym pause only
rx=0 and tx=0: stop advertising both pause modes
The fixed commit isn't wrong, it's just the one that introduced the
linkmode bitmaps.
Fixes: 3c1bcc8614
("net: ethernet: Convert phydev advertize and supported from u32 to link mode")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7fcd1e033d
commit
b4010af981
@ -2044,11 +2044,14 @@ bool phy_validate_pause(struct phy_device *phydev,
|
||||
struct ethtool_pauseparam *pp)
|
||||
{
|
||||
if (!linkmode_test_bit(ETHTOOL_LINK_MODE_Pause_BIT,
|
||||
phydev->supported) ||
|
||||
(!linkmode_test_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT,
|
||||
phydev->supported) &&
|
||||
pp->rx_pause != pp->tx_pause))
|
||||
phydev->supported) && pp->rx_pause)
|
||||
return false;
|
||||
|
||||
if (!linkmode_test_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT,
|
||||
phydev->supported) &&
|
||||
pp->rx_pause != pp->tx_pause)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
EXPORT_SYMBOL(phy_validate_pause);
|
||||
|
Loading…
Reference in New Issue
Block a user