PHYLIB: Locking fixes for PHY I/O potentially sleeping
authorNate Case <ncase@xes-inc.com>
Tue, 29 Jan 2008 16:05:09 +0000 (10:05 -0600)
committerDavid S. Miller <davem@davemloft.net>
Sun, 3 Feb 2008 12:28:41 +0000 (04:28 -0800)
commit35b5f6b1a82b5c586e0b24c711dc6ba944e88ef1
treecf08793802ce8f91f13e262c3b6cdcf0a01d95e9
parent2b91213064bd882c3adf35f028c6d12fab3269ec
PHYLIB: Locking fixes for PHY I/O potentially sleeping

PHY read/write functions can potentially sleep (e.g., a PHY accessed
via I2C).  The following changes were made to account for this:

    * Change spin locks to mutex locks
    * Add a BUG_ON() to phy_read() phy_write() to warn against
      calling them from an interrupt context.
    * Use work queue for PHY state machine handling since
      it can potentially sleep
    * Change phydev lock from spinlock to mutex

Signed-off-by: Nate Case <ncase@xes-inc.com>
Acked-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/mdio_bus.c
drivers/net/phy/phy.c
drivers/net/phy/phy_device.c
include/linux/phy.h