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

Commit 0a282538 authored by Haiyang Zhang's avatar Haiyang Zhang Committed by David S. Miller
Browse files

net/hyperv: Use netif_tx_disable() instead of netif_stop_queue() when necessary



For code path not on the xmit, use netif_tx_disable() instead of
netif_stop_queue() to ensure other CPUs are not doing xmit.

Signed-off-by: default avatarHaiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cb0a178c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -123,7 +123,7 @@ static int netvsc_close(struct net_device *net)
	struct hv_device *device_obj = net_device_ctx->device_ctx;
	int ret;

	netif_stop_queue(net);
	netif_tx_disable(net);

	ret = rndis_filter_close(device_obj);
	if (ret != 0)
@@ -256,7 +256,7 @@ void netvsc_linkstatus_callback(struct hv_device *device_obj,
		schedule_delayed_work(&ndev_ctx->dwork, msecs_to_jiffies(20));
	} else {
		netif_carrier_off(net);
		netif_stop_queue(net);
		netif_tx_disable(net);
	}
}

@@ -337,7 +337,7 @@ static int netvsc_change_mtu(struct net_device *ndev, int mtu)

	nvdev->start_remove = true;
	cancel_delayed_work_sync(&ndevctx->dwork);
	netif_stop_queue(ndev);
	netif_tx_disable(ndev);
	rndis_filter_device_remove(hdev);

	ndev->mtu = mtu;
@@ -460,7 +460,7 @@ static int netvsc_remove(struct hv_device *dev)
	cancel_delayed_work_sync(&ndev_ctx->dwork);

	/* Stop outbound asap */
	netif_stop_queue(net);
	netif_tx_disable(net);

	unregister_netdev(net);