From: Sergei Shtylylov Date: Tue, 25 Jul 2006 20:53:53 +0000 (+0400) Subject: [PATCH] Stop calling phy_stop_interrupts() twice X-Git-Tag: v2.6.18-rc4~47^2~2 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=817acf5ebd9ea21f134fc90064b0f6686c5b169d;p=linux-2.6-omap-h63xx.git [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 Signed-off-by: Jeff Garzik --- diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 7d5c2233c25..f5aad77288f 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -419,9 +419,8 @@ void phy_start_machine(struct phy_device *phydev, /* phy_stop_machine * - * description: Stops the state machine timer, sets the state to - * UP (unless it wasn't up yet), and then frees the interrupt, - * if it is in use. This function must be called BEFORE + * description: Stops the state machine timer, sets the state to UP + * (unless it wasn't up yet). This function must be called BEFORE * phy_detach. */ void phy_stop_machine(struct phy_device *phydev) @@ -433,9 +432,6 @@ void phy_stop_machine(struct phy_device *phydev) phydev->state = PHY_UP; spin_unlock(&phydev->lock); - if (phydev->irq != PHY_POLL) - phy_stop_interrupts(phydev); - phydev->adjust_state = NULL; }