Commit 935d8a0a authored by Lijun Pan's avatar Lijun Pan Committed by Jakub Kicinski
Browse files

use __netdev_notify_peers in hyperv



Start to use the lockless version of netdev_notify_peers.
Call the helper where notify variable used to be set true.
Remove the notify bool variable and sort the variables
in reverse Christmas tree order.

Cc: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: default avatarLijun Pan <ljp@linux.ibm.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 6be46662
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -2050,11 +2050,11 @@ static void netvsc_link_change(struct work_struct *w)
		container_of(w, struct net_device_context, dwork.work);
	struct hv_device *device_obj = ndev_ctx->device_ctx;
	struct net_device *net = hv_get_drvdata(device_obj);
	unsigned long flags, next_reconfig, delay;
	struct netvsc_reconfig *event = NULL;
	struct netvsc_device *net_device;
	struct rndis_device *rdev;
	struct netvsc_reconfig *event = NULL;
	bool notify = false, reschedule = false;
	unsigned long flags, next_reconfig, delay;
	bool reschedule = false;

	/* if changes are happening, comeback later */
	if (!rtnl_trylock()) {
@@ -2103,7 +2103,7 @@ static void netvsc_link_change(struct work_struct *w)
			netif_carrier_on(net);
			netvsc_tx_enable(net_device, net);
		} else {
			notify = true;
			__netdev_notify_peers(net);
		}
		kfree(event);
		break;
@@ -2132,9 +2132,6 @@ static void netvsc_link_change(struct work_struct *w)

	rtnl_unlock();

	if (notify)
		netdev_notify_peers(net);

	/* link_watch only sends one notification with current state per
	 * second, handle next reconfig event in 2 seconds.
	 */