net: pcs: xpcs: Fix a less than zero u16 comparison error
authorColin Ian King <colin.king@canonical.com>
Tue, 15 Jun 2021 13:52:53 +0000 (14:52 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 17 Jun 2021 18:14:06 +0000 (11:14 -0700)
Currently the check for the u16 variable val being less than zero is
always false because val is unsigned. Fix this by using the int
variable for the assignment and less than zero check.

Addresses-Coverity: ("Unsigned compared against 0")
Fixes: f7380bba42fd ("net: pcs: xpcs: add support for NXP SJA1110")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/pcs/pcs-xpcs-nxp.c

index de99c37..984c9f7 100644 (file)
@@ -152,13 +152,13 @@ static int nxp_sja1110_pma_config(struct dw_xpcs *xpcs,
        /* Enable TX and RX PLLs and circuits.
         * Release reset of PMA to enable data flow to/from PCS.
         */
-       val = xpcs_read(xpcs, MDIO_MMD_VEND2, SJA1110_POWERDOWN_ENABLE);
-       if (val < 0)
-               return val;
+       ret = xpcs_read(xpcs, MDIO_MMD_VEND2, SJA1110_POWERDOWN_ENABLE);
+       if (ret < 0)
+               return ret;
 
-       val &= ~(SJA1110_TXPLL_PD | SJA1110_TXPD | SJA1110_RXCH_PD |
-                SJA1110_RXBIAS_PD | SJA1110_RESET_SER_EN |
-                SJA1110_RESET_SER | SJA1110_RESET_DES);
+       val = ret & ~(SJA1110_TXPLL_PD | SJA1110_TXPD | SJA1110_RXCH_PD |
+                     SJA1110_RXBIAS_PD | SJA1110_RESET_SER_EN |
+                     SJA1110_RESET_SER | SJA1110_RESET_DES);
        val |= SJA1110_RXPKDETEN | SJA1110_RCVEN;
 
        ret = xpcs_write(xpcs, MDIO_MMD_VEND2, SJA1110_POWERDOWN_ENABLE, val);