From: Stephen Hemminger Date: Wed, 6 Sep 2017 20:53:06 +0000 (-0700) Subject: hv_netvsc: avoid unnecessary wakeups on subchannel creation X-Git-Tag: v5.15~10389^2~35 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=8f2bb1de73344dbedd4195016b782bee7bf3598f;p=mirror_ubuntu-kernels.git hv_netvsc: avoid unnecessary wakeups on subchannel creation Only need to wakeup the initiator after all sub-channels are opened. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller --- diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c index 731bc7cc6f43..065b204d8e17 100644 --- a/drivers/net/hyperv/rndis_filter.c +++ b/drivers/net/hyperv/rndis_filter.c @@ -1048,8 +1048,8 @@ static void netvsc_sc_open(struct vmbus_channel *new_sc) else netdev_notice(ndev, "sub channel open failed: %d\n", ret); - atomic_inc(&nvscdev->open_chn); - wake_up(&nvscdev->subchan_open); + if (atomic_inc_return(&nvscdev->open_chn) == nvscdev->num_chn) + wake_up(&nvscdev->subchan_open); } /* Open sub-channels after completing the handling of the device probe.