use __netdev_notify_peers in hyperv
authorLijun Pan <ljp@linux.ibm.com>
Mon, 14 Dec 2020 21:19:30 +0000 (15:19 -0600)
committerJakub Kicinski <kuba@kernel.org>
Wed, 16 Dec 2020 19:43:26 +0000 (11:43 -0800)
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: Lijun Pan <ljp@linux.ibm.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/hyperv/netvsc_drv.c

index d17bbc7..f32f283 100644 (file)
@@ -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.
         */