sky2: hold spinlock around phy_power_down
authorStephen Hemminger <shemminger@vyatta.com>
Fri, 14 Aug 2009 05:15:15 +0000 (05:15 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Aug 2009 22:30:02 +0000 (15:30 -0700)
Avoid any possible problems with accessing PHY registers on shutdown.
This is a purely theoretical issue and is not related to any of the
outstanding bug reports. Since receiver and transmitter are already
shutdown and phy interrupts for this device are already disabled,
there should already be enough protection. Suggested by Mike McCormack.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sky2.c

index b75b48e83970c609d10af2d70a57c7e0ab57eefb..1d3ee03fa6480e8dcd11a16e0fc46ea29c057914 100644 (file)
@@ -1893,7 +1893,9 @@ static int sky2_down(struct net_device *dev)
        synchronize_irq(hw->pdev->irq);
        napi_synchronize(&hw->napi);
 
+       spin_lock_bh(&sky2->phy_lock);
        sky2_phy_power_down(hw, port);
+       spin_unlock_bh(&sky2->phy_lock);
 
        /* turn off LED's */
        sky2_write16(hw, B0_Y2LED, LED_STAT_OFF);