Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=87aebe078e450795d336d20304d01095251ff9fa
Commit:     87aebe078e450795d336d20304d01095251ff9fa
Parent:     a2a0f74dc1e7d588b0ba6a1d177f42bef18117d0
Author:     Greg Kroah-Hartman <[EMAIL PROTECTED]>
AuthorDate: Mon Apr 9 11:52:31 2007 -0400
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Fri Apr 27 10:57:31 2007 -0700

    PHY: remove rwsem use from phy core
    
    The subsystem rwsem is not used by the driver core at all, so the use of
    it in the phy code doesn't make any sense.  They might possibly
    want to use a local lock, but I am unsure about that.
    
    Cc: netdev <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/net/phy/fixed.c      |    6 ------
 drivers/net/phy/phy_device.c |    9 +--------
 2 files changed, 1 insertions(+), 14 deletions(-)

diff --git a/drivers/net/phy/fixed.c b/drivers/net/phy/fixed.c
index 66da91b..68c99b4 100644
--- a/drivers/net/phy/fixed.c
+++ b/drivers/net/phy/fixed.c
@@ -276,21 +276,15 @@ static int fixed_mdio_register_device(int number, int 
speed, int duplex)
           artificially, we are binding the driver here by hand;
           it will be the same for all the fixed phys anyway.
         */
-       down_write(&phydev->dev.bus->subsys.rwsem);
-
        phydev->dev.driver = &fixed_mdio_driver.driver;
 
        err = phydev->dev.driver->probe(&phydev->dev);
        if(err < 0) {
                printk(KERN_ERR "Phy %s: problems with fixed 
driver\n",phydev->dev.bus_id);
-               up_write(&phydev->dev.bus->subsys.rwsem);
                goto probe_fail;
        }
 
        err = device_bind_driver(&phydev->dev);
-
-       up_write(&phydev->dev.bus->subsys.rwsem);
-
        if (err)
                goto probe_fail;
 
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 7d5b6d1..8f01952 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -208,16 +208,12 @@ struct phy_device *phy_attach(struct net_device *dev,
         * exist, and we should use the genphy driver. */
        if (NULL == d->driver) {
                int err;
-               down_write(&d->bus->subsys.rwsem);
                d->driver = &genphy_driver.driver;
 
                err = d->driver->probe(d);
-
                if (err >= 0)
                        err = device_bind_driver(d);
 
-               up_write(&d->bus->subsys.rwsem);
-
                if (err)
                        return ERR_PTR(err);
        }
@@ -258,11 +254,8 @@ void phy_detach(struct phy_device *phydev)
         * was using the generic driver), we unbind the device
         * from the generic driver so that there's a chance a
         * real driver could be loaded */
-       if (phydev->dev.driver == &genphy_driver.driver) {
-               down_write(&phydev->dev.bus->subsys.rwsem);
+       if (phydev->dev.driver == &genphy_driver.driver)
                device_release_driver(&phydev->dev);
-               up_write(&phydev->dev.bus->subsys.rwsem);
-       }
 }
 EXPORT_SYMBOL(phy_detach);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to