A comment in uapi/linux/ethtool.h states "Drivers should reject a
non-zero setting of @autoneg when autoneogotiation is disabled (or
not supported) for the link".

That check should be added to phy_validate_pause() to consolidate
the code where possible.

Fixes: 22b7d29926b5 ("net: ethernet: Add helper to determine if pause 
configuration is supported")
Signed-off-by: Doug Berger <open...@gmail.com>
---
 drivers/net/phy/phy_device.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index c3a107cf578e..5a9618ba232e 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -2624,6 +2624,9 @@ EXPORT_SYMBOL(phy_set_asym_pause);
 bool phy_validate_pause(struct phy_device *phydev,
                        struct ethtool_pauseparam *pp)
 {
+       if (pp->autoneg && !phydev->autoneg)
+               return false;
+
        if (!linkmode_test_bit(ETHTOOL_LINK_MODE_Pause_BIT,
                               phydev->supported) && pp->rx_pause)
                return false;
-- 
2.7.4

Reply via email to