Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df01093b authored by Mike McCormack's avatar Mike McCormack Committed by David S. Miller
Browse files

sky2: Avoid race in sky2_change_mtu



netif_stop_queue does not ensure all in-progress transmits are complete,
 so use netif_tx_disable() instead.

Secondly, make sure NAPI polls are disabled before stopping the tx queue,
 otherwise sky2_status_intr might trigger a TX queue wakeup between when
 we stop the queue and NAPI is disabled.

Signed-off-by: default avatarMike McCormack <mikem@ring3k.org>
Acked-by: default avatarStephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 37652522
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2275,8 +2275,8 @@ static int sky2_change_mtu(struct net_device *dev, int new_mtu)
	sky2_write32(hw, B0_IMSK, 0);

	dev->trans_start = jiffies;	/* prevent tx timeout */
	netif_stop_queue(dev);
	napi_disable(&hw->napi);
	netif_tx_disable(dev);

	synchronize_irq(hw->pdev->irq);