[PATCH] Stop calling phy_stop_interrupts() twice
Prevent phylib from freeing PHY IRQ twice on closing an eth device: phy_disconnect() first calls phy_stop_interrupts(), then it calls phy_stop_machine() which in turn calls phy_stop_interrupts() making the kernel complain on each bootup... Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
75c30b1368
commit
817acf5ebd
|
@ -419,9 +419,8 @@ void phy_start_machine(struct phy_device *phydev,
|
||||||
|
|
||||||
/* phy_stop_machine
|
/* phy_stop_machine
|
||||||
*
|
*
|
||||||
* description: Stops the state machine timer, sets the state to
|
* description: Stops the state machine timer, sets the state to UP
|
||||||
* UP (unless it wasn't up yet), and then frees the interrupt,
|
* (unless it wasn't up yet). This function must be called BEFORE
|
||||||
* if it is in use. This function must be called BEFORE
|
|
||||||
* phy_detach.
|
* phy_detach.
|
||||||
*/
|
*/
|
||||||
void phy_stop_machine(struct phy_device *phydev)
|
void phy_stop_machine(struct phy_device *phydev)
|
||||||
|
@ -433,9 +432,6 @@ void phy_stop_machine(struct phy_device *phydev)
|
||||||
phydev->state = PHY_UP;
|
phydev->state = PHY_UP;
|
||||||
spin_unlock(&phydev->lock);
|
spin_unlock(&phydev->lock);
|
||||||
|
|
||||||
if (phydev->irq != PHY_POLL)
|
|
||||||
phy_stop_interrupts(phydev);
|
|
||||||
|
|
||||||
phydev->adjust_state = NULL;
|
phydev->adjust_state = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue