net/phy: Fix phy_connect() for phy addr 0
authorPriyanka Jain <priyanka.jain@nxp.com>
Tue, 5 Nov 2019 04:05:11 +0000 (04:05 +0000)
committerJoe Hershberger <joe.hershberger@ni.com>
Mon, 9 Dec 2019 15:47:42 +0000 (09:47 -0600)
Fix 'mask' calculation in phy_connect() for phy addr '0'.
'mask' is getting set to '0xffffffff' for phy addr '0'
in phy_connect() whereas expected value is '0'.

Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
Reported-by: tetsu-aoki via github
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
drivers/net/phy/phy.c

index f2d17aa91a07e394f968d1cf6343cae36301a35a..6be0709e3414edce886e45296fc583162ec43614 100644 (file)
@@ -997,7 +997,7 @@ struct phy_device *phy_connect(struct mii_dev *bus, int addr,
 #endif
 {
        struct phy_device *phydev = NULL;
-       uint mask = (addr > 0) ? (1 << addr) : 0xffffffff;
+       uint mask = (addr >= 0) ? (1 << addr) : 0xffffffff;
 
 #ifdef CONFIG_PHY_FIXED
        phydev = phy_connect_fixed(bus, dev, interface);