diff options
| author | Sergei Shtylylov <sshtylyov@ru.mvista.com> | 2006-07-25 16:53:53 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-08-03 17:29:59 -0400 |
| commit | 817acf5ebd9ea21f134fc90064b0f6686c5b169d (patch) | |
| tree | 5573d1c3243111b45f7563d2e2f098dec15c4f10 | |
| parent | 75c30b1368faaa9c740536b91a15a33aab62f30b (diff) | |
[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>
| -rw-r--r-- | drivers/net/phy/phy.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 7d5c2233c252..f5aad77288f9 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, | |||
| 419 | 419 | ||
| 420 | /* phy_stop_machine | 420 | /* phy_stop_machine |
| 421 | * | 421 | * |
| 422 | * description: Stops the state machine timer, sets the state to | 422 | * description: Stops the state machine timer, sets the state to UP |
| 423 | * UP (unless it wasn't up yet), and then frees the interrupt, | 423 | * (unless it wasn't up yet). This function must be called BEFORE |
| 424 | * if it is in use. This function must be called BEFORE | ||
| 425 | * phy_detach. | 424 | * phy_detach. |
| 426 | */ | 425 | */ |
| 427 | void phy_stop_machine(struct phy_device *phydev) | 426 | void phy_stop_machine(struct phy_device *phydev) |
| @@ -433,9 +432,6 @@ void phy_stop_machine(struct phy_device *phydev) | |||
| 433 | phydev->state = PHY_UP; | 432 | phydev->state = PHY_UP; |
| 434 | spin_unlock(&phydev->lock); | 433 | spin_unlock(&phydev->lock); |
| 435 | 434 | ||
| 436 | if (phydev->irq != PHY_POLL) | ||
| 437 | phy_stop_interrupts(phydev); | ||
| 438 | |||
| 439 | phydev->adjust_state = NULL; | 435 | phydev->adjust_state = NULL; |
| 440 | } | 436 | } |
| 441 | 437 | ||
