{
        int err;
 
-       spin_lock(&phydev->lock);
+       spin_lock_bh(&phydev->lock);
 
        if (AUTONEG_DISABLE == phydev->autoneg)
                phy_sanitize_settings(phydev);
        }
 
 out_unlock:
-       spin_unlock(&phydev->lock);
+       spin_unlock_bh(&phydev->lock);
        return err;
 }
 EXPORT_SYMBOL(phy_start_aneg);
 {
        del_timer_sync(&phydev->phy_timer);
 
-       spin_lock(&phydev->lock);
+       spin_lock_bh(&phydev->lock);
        if (phydev->state > PHY_UP)
                phydev->state = PHY_UP;
-       spin_unlock(&phydev->lock);
+       spin_unlock_bh(&phydev->lock);
 
        phydev->adjust_state = NULL;
 }
  */
 void phy_error(struct phy_device *phydev)
 {
-       spin_lock(&phydev->lock);
+       spin_lock_bh(&phydev->lock);
        phydev->state = PHY_HALTED;
-       spin_unlock(&phydev->lock);
+       spin_unlock_bh(&phydev->lock);
 }
 
 /**
        if (err)
                goto phy_err;
 
-       spin_lock(&phydev->lock);
+       spin_lock_bh(&phydev->lock);
        if ((PHY_RUNNING == phydev->state) || (PHY_NOLINK == phydev->state))
                phydev->state = PHY_CHANGELINK;
-       spin_unlock(&phydev->lock);
+       spin_unlock_bh(&phydev->lock);
 
        enable_irq(phydev->irq);
 
  */
 void phy_stop(struct phy_device *phydev)
 {
-       spin_lock(&phydev->lock);
+       spin_lock_bh(&phydev->lock);
 
        if (PHY_HALTED == phydev->state)
                goto out_unlock;
        }
 
 out_unlock:
-       spin_unlock(&phydev->lock);
+       spin_unlock_bh(&phydev->lock);
 
        /*
         * Cannot call flush_scheduled_work() here as desired because
        int needs_aneg = 0;
        int err = 0;
 
-       spin_lock(&phydev->lock);
+       spin_lock_bh(&phydev->lock);
 
        if (phydev->adjust_state)
                phydev->adjust_state(phydev->attached_dev);
                        break;
        }
 
-       spin_unlock(&phydev->lock);
+       spin_unlock_bh(&phydev->lock);
 
        if (needs_aneg)
                err = phy_start_aneg(phydev);