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 d738733..376a0d8 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 &&