tg3: Fix inconsistent locking for tg3_netif_start().
Every caller holds tp->lock when calling tg3_netif_start() except tg3_io_resume(). Fix it so that it is all consistent. The subsequent PTP patches add tg3_ptp_resume() to tg3_netif_start() and the tp->lock is required. Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com> Signed-off-by: Michael Chan <mchan@broadcom.com> Acked-by: Richard Cochran <richardcochran@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
682d7978ae
commit
357630668a
@ -6525,6 +6525,7 @@ static inline void tg3_netif_stop(struct tg3 *tp)
|
||||
netif_tx_disable(tp->dev);
|
||||
}
|
||||
|
||||
/* tp->lock must be held */
|
||||
static inline void tg3_netif_start(struct tg3 *tp)
|
||||
{
|
||||
/* NOTE: unconditional netif_tx_wake_all_queues is only
|
||||
@ -16599,8 +16600,8 @@ static void tg3_io_resume(struct pci_dev *pdev)
|
||||
tg3_full_lock(tp, 0);
|
||||
tg3_flag_set(tp, INIT_COMPLETE);
|
||||
err = tg3_restart_hw(tp, 1);
|
||||
tg3_full_unlock(tp);
|
||||
if (err) {
|
||||
tg3_full_unlock(tp);
|
||||
netdev_err(netdev, "Cannot restart hardware after reset.\n");
|
||||
goto done;
|
||||
}
|
||||
@ -16611,6 +16612,8 @@ static void tg3_io_resume(struct pci_dev *pdev)
|
||||
|
||||
tg3_netif_start(tp);
|
||||
|
||||
tg3_full_unlock(tp);
|
||||
|
||||
tg3_phy_start(tp);
|
||||
|
||||
done:
|
||||
|
Loading…
Reference in New Issue
Block a user