Skip to content
  • Andrew Lunn's avatar
    phy: marvell/micrel: Fix Unpossible condition · 321b4d4b
    Andrew Lunn authored
    commit 2b2427d0 ("phy: micrel: Add ethtool statistics counters")
    from Dec 30, 2015, leads to the following static checker
    warning:
    
            drivers/net/phy/micrel.c:609 kszphy_get_stat()
            warn: unsigned 'val' is never less than zero.
    
    drivers/net/phy/micrel.c
       602  static u64 kszphy_get_stat(struct phy_device *phydev, int i)
       603  {
       604          struct kszphy_hw_stat stat = kszphy_hw_stats[i];
       605          struct kszphy_priv *priv = phydev->priv;
       606          u64 val;
       607
       608          val = phy_read(phydev, stat.reg);
       609          if (val < 0) {
                        ^^^^^^^
    Unpossible!
    
       610                  val = UINT64_MAX;
       611          } else {
       612                  val = val & ((1 << stat.bits) - 1);
       613                  priv->stats[i] += val;
       614                  val = priv->stats[i];
       615          }
       616
       617          return val;
       618  }
    
    The same problem exists in the Marvell driver. Fix both.
    
    Fixes: 2b2427d0
    
     ("phy: micrel: Add ethtool statistics counters")
    Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Reported-by: default avatarJulia.Lawall <julia.lawall@lip6.fr>
    Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    321b4d4b