net: phy: move call to start aneg
Move the call to start auto-negotiation inside the lock in the PHYLIB state machine, calling the locked variant _phy_start_aneg(). This avoids unnecessarily releasing and re-acquiring the lock. Tested-by: Jijie Shao <shaojijie@huawei.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ef113a60d0
commit
ea5968cd7d
@ -1489,14 +1489,15 @@ void phy_state_machine(struct work_struct *work)
|
||||
break;
|
||||
}
|
||||
|
||||
if (needs_aneg) {
|
||||
err = _phy_start_aneg(phydev);
|
||||
func = &_phy_start_aneg;
|
||||
}
|
||||
|
||||
mutex_unlock(&phydev->lock);
|
||||
|
||||
if (needs_aneg) {
|
||||
err = phy_start_aneg(phydev);
|
||||
func = &phy_start_aneg;
|
||||
} else if (do_suspend) {
|
||||
if (do_suspend)
|
||||
phy_suspend(phydev);
|
||||
}
|
||||
|
||||
if (err == -ENODEV)
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user