linux/drivers/net/phy
Andrew Lunn 321b4d4bd1 phy: marvell/micrel: Fix Unpossible condition
commit 2b2427d064 ("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: 2b2427d064 ("phy: micrel: Add ethtool statistics counters")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reported-by: Julia.Lawall <julia.lawall@lip6.fr>
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-02-19 23:41:37 -05:00
..
amd.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
aquantia.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
at803x.c net: phy: at803x: Add the interrupt register bit definitions 2016-01-17 19:16:47 -05:00
bcm7xxx.c net: phy: bcm7xxx: Reduce boilerplate code for 40nm EPHY 2016-02-16 14:57:30 -05:00
bcm63xx.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
bcm87xx.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
bcm-cygnus.c net: phy: Broadcom Cygnus internal Etherent PHY driver 2015-10-08 04:45:52 -07:00
bcm-phy-lib.c phy: phy_{read|write}_mmd_indirect: get addr from phydev 2016-01-07 14:31:25 -05:00
bcm-phy-lib.h net: phy: Add Broadcom phy library for common interfaces 2015-10-08 04:45:46 -07:00
broadcom.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
cicada.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
davicom.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
dp83640_reg.h
dp83640.c net: dp83640: Fix tx timestamp overflow handling. 2016-01-20 18:54:08 -08:00
dp83848.c net: phy: dp83848: Fix sysfs naming collision warning 2016-02-18 15:53:10 -05:00
dp83867.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
et1011c.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
fixed_phy.c phy: Add an mdio_device structure 2016-01-07 14:31:26 -05:00
icplus.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
Kconfig net: Fix dependencies for !HAS_IOMEM archs 2016-01-28 16:03:19 -08:00
lxt.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
Makefile mdio: Add support for mdio drivers. 2016-01-07 14:31:27 -05:00
marvell.c phy: marvell/micrel: Fix Unpossible condition 2016-02-19 23:41:37 -05:00
mdio_bus.c mdio_bus: NULL dereference on allocation error 2016-01-12 11:49:20 -05:00
mdio_device.c mdio: Abstract device_remove() and device_free() 2016-01-07 14:31:27 -05:00
mdio-bcm-iproc.c net: phy: Broadcom iProc MDIO bus driver 2015-10-08 04:44:46 -07:00
mdio-bcm-unimac.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-bitbang.c net: phy: mdio-gpio: Handle phy_ignore_ta_mask 2015-05-14 13:40:55 -04:00
mdio-gpio.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-moxart.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-mux-gpio.c gpiolib: rename gpiod_set_array to gpiod_set_array_value 2015-06-01 15:10:09 +02:00
mdio-mux-mmioreg.c net: phy: mdio: add missing of_node_put 2015-10-26 22:08:12 -07:00
mdio-mux.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-octeon.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
mdio-sun4i.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
micrel.c phy: marvell/micrel: Fix Unpossible condition 2016-02-19 23:41:37 -05:00
microchip.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
national.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
phy_device.c net: phy: turn carrier off on phy attach 2016-01-15 14:49:11 -05:00
phy.c net: phy: Fix phy_mac_interrupt() 2016-01-21 10:48:51 -08:00
qsemi.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
realtek.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
smsc.c net: phy: smsc: Fix disabling energy detect mode 2016-01-21 12:06:03 -08:00
spi_ks8995.c net: phy: spi_ks8995: include linux/gpio/consumer.h 2016-02-16 20:37:04 -05:00
ste10Xp.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
teranetics.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00
vitesse.c phy: Centralize setting driver module owner 2016-01-07 14:31:27 -05:00