netdev/phy: Use mdiobus_read() so that proper locks are taken.
authorDavid Daney <david.daney@cavium.com>
Fri, 30 Sep 2011 11:51:22 +0000 (11:51 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Sep 2011 22:54:08 +0000 (18:54 -0400)
Accesses to the mdio busses must be done with the mdio_lock to ensure
proper operation.  Conveniently we have the helper function
mdiobus_read() to do that for us.  Lets use it in get_phy_id() instead
of accessing the bus without the lock held.

Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy_device.c

index ff109fe5af6bfad946d8e8c4eb82995c19fe382d..83a5a5afec67f942f4a627cc0cd1b0f752325966 100644 (file)
@@ -213,7 +213,7 @@ int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id)
 
        /* Grab the bits from PHYIR1, and put them
         * in the upper half */
-       phy_reg = bus->read(bus, addr, MII_PHYSID1);
+       phy_reg = mdiobus_read(bus, addr, MII_PHYSID1);
 
        if (phy_reg < 0)
                return -EIO;
@@ -221,7 +221,7 @@ int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id)
        *phy_id = (phy_reg & 0xffff) << 16;
 
        /* Grab the bits from PHYIR2, and put them in the lower half */
-       phy_reg = bus->read(bus, addr, MII_PHYSID2);
+       phy_reg = mdiobus_read(bus, addr, MII_PHYSID2);
 
        if (phy_reg < 0)
                return -EIO;