mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 18:09:56 +00:00
net: phy: fix phy_validate_pause
[ Upstream commitb4010af981] 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4a91e5e4c5
commit
39f7b39419
@@ -2083,11 +2083,14 @@ bool phy_validate_pause(struct phy_device *phydev,
|
|||||||
struct ethtool_pauseparam *pp)
|
struct ethtool_pauseparam *pp)
|
||||||
{
|
{
|
||||||
if (!linkmode_test_bit(ETHTOOL_LINK_MODE_Pause_BIT,
|
if (!linkmode_test_bit(ETHTOOL_LINK_MODE_Pause_BIT,
|
||||||
phydev->supported) ||
|
phydev->supported) && pp->rx_pause)
|
||||||
(!linkmode_test_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT,
|
|
||||||
phydev->supported) &&
|
|
||||||
pp->rx_pause != pp->tx_pause))
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (!linkmode_test_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT,
|
||||||
|
phydev->supported) &&
|
||||||
|
pp->rx_pause != pp->tx_pause)
|
||||||
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(phy_validate_pause);
|
EXPORT_SYMBOL(phy_validate_pause);
|
||||||
|
|||||||
Reference in New Issue
Block a user