Commit ec5592e9 authored by David S. Miller's avatar David S. Miller

[TG3]: Do tg3_netif_start() under lock.

Signed-off-by: default avatarDavid S. Miller <davem@redhat.com>
parent ec4db5af
...@@ -2865,11 +2865,11 @@ static void tg3_reset_task(void *_data) ...@@ -2865,11 +2865,11 @@ static void tg3_reset_task(void *_data)
tg3_halt(tp); tg3_halt(tp);
tg3_init_hw(tp); tg3_init_hw(tp);
tg3_netif_start(tp);
spin_unlock(&tp->tx_lock); spin_unlock(&tp->tx_lock);
spin_unlock_irq(&tp->lock); spin_unlock_irq(&tp->lock);
tg3_netif_start(tp);
if (restart_timer) if (restart_timer)
mod_timer(&tp->timer, jiffies + 1); mod_timer(&tp->timer, jiffies + 1);
} }
...@@ -3229,9 +3229,10 @@ static int tg3_change_mtu(struct net_device *dev, int new_mtu) ...@@ -3229,9 +3229,10 @@ static int tg3_change_mtu(struct net_device *dev, int new_mtu)
tg3_init_hw(tp); tg3_init_hw(tp);
tg3_netif_start(tp);
spin_unlock(&tp->tx_lock); spin_unlock(&tp->tx_lock);
spin_unlock_irq(&tp->lock); spin_unlock_irq(&tp->lock);
tg3_netif_start(tp);
return 0; return 0;
} }
...@@ -6606,10 +6607,9 @@ static int tg3_set_ringparam(struct net_device *dev, struct ethtool_ringparam *e ...@@ -6606,10 +6607,9 @@ static int tg3_set_ringparam(struct net_device *dev, struct ethtool_ringparam *e
tg3_halt(tp); tg3_halt(tp);
tg3_init_hw(tp); tg3_init_hw(tp);
netif_wake_queue(tp->dev); tg3_netif_start(tp);
spin_unlock(&tp->tx_lock); spin_unlock(&tp->tx_lock);
spin_unlock_irq(&tp->lock); spin_unlock_irq(&tp->lock);
tg3_netif_start(tp);
return 0; return 0;
} }
...@@ -6644,9 +6644,9 @@ static int tg3_set_pauseparam(struct net_device *dev, struct ethtool_pauseparam ...@@ -6644,9 +6644,9 @@ static int tg3_set_pauseparam(struct net_device *dev, struct ethtool_pauseparam
tp->tg3_flags &= ~TG3_FLAG_PAUSE_TX; tp->tg3_flags &= ~TG3_FLAG_PAUSE_TX;
tg3_halt(tp); tg3_halt(tp);
tg3_init_hw(tp); tg3_init_hw(tp);
tg3_netif_start(tp);
spin_unlock(&tp->tx_lock); spin_unlock(&tp->tx_lock);
spin_unlock_irq(&tp->lock); spin_unlock_irq(&tp->lock);
tg3_netif_start(tp);
return 0; return 0;
} }
...@@ -8499,11 +8499,11 @@ static int tg3_suspend(struct pci_dev *pdev, u32 state) ...@@ -8499,11 +8499,11 @@ static int tg3_suspend(struct pci_dev *pdev, u32 state)
tp->timer.expires = jiffies + tp->timer_offset; tp->timer.expires = jiffies + tp->timer_offset;
add_timer(&tp->timer); add_timer(&tp->timer);
spin_unlock(&tp->tx_lock);
spin_unlock_irq(&tp->lock);
netif_device_attach(dev); netif_device_attach(dev);
tg3_netif_start(tp); tg3_netif_start(tp);
spin_unlock(&tp->tx_lock);
spin_unlock_irq(&tp->lock);
} }
return err; return err;
...@@ -8536,11 +8536,11 @@ static int tg3_resume(struct pci_dev *pdev) ...@@ -8536,11 +8536,11 @@ static int tg3_resume(struct pci_dev *pdev)
tg3_enable_ints(tp); tg3_enable_ints(tp);
tg3_netif_start(tp);
spin_unlock(&tp->tx_lock); spin_unlock(&tp->tx_lock);
spin_unlock_irq(&tp->lock); spin_unlock_irq(&tp->lock);
tg3_netif_start(tp);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment