net: phy: check if advertising is zero using linkmode_empty
authorColin Ian King <colin.king@canonical.com>
Mon, 12 Nov 2018 23:45:56 +0000 (23:45 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Nov 2018 00:26:21 +0000 (16:26 -0800)
A recent change modified variable advertising from a u32 to a link mode
array and left the u32 zero comparison, so essential we now have an array
being compared to null which is not the intention. Fix this by using the
call to linkmode_empty to check if advertising is all zero.

Detected by CoverityScan, CID#1475424 ("Array compared against 0")

Fixes: 3c1bcc8614db ("net: ethernet: Convert phydev advertize and supported from u32 to link mode")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy.c

index d73873334e47f3f5b3aa780ec63116e070a428f1..376a0d8a2b6162d6ed9967aef023a638b07b1937 100644 (file)
@@ -328,7 +328,7 @@ int phy_ethtool_ksettings_set(struct phy_device *phydev,
        if (autoneg != AUTONEG_ENABLE && autoneg != AUTONEG_DISABLE)
                return -EINVAL;
 
-       if (autoneg == AUTONEG_ENABLE && advertising == 0)
+       if (autoneg == AUTONEG_ENABLE && linkmode_empty(advertising))
                return -EINVAL;
 
        if (autoneg == AUTONEG_DISABLE &&