vrf: simplify the netdev notifier function
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Tue, 18 Aug 2015 17:28:04 +0000 (20:28 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 19 Aug 2015 03:16:52 +0000 (20:16 -0700)
We can drop the check because if vrf_ptr is present then we must have
the vrf device as a master and since we're running with rtnl it can't go
away.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vrf.c

index 97605eab14ae3f4abbc454c42fc0222a36592d41..ed208317cbb50fe4848a4eeef53805be7fa4be99 100644 (file)
@@ -624,9 +624,8 @@ static int vrf_device_event(struct notifier_block *unused,
                if (!vrf_ptr || netif_is_vrf(dev))
                        goto out;
 
-               vrf_dev = __dev_get_by_index(dev_net(dev), vrf_ptr->ifindex);
-               if (vrf_dev)
-                       vrf_del_slave(vrf_dev, dev);
+               vrf_dev = netdev_master_upper_dev_get(dev);
+               vrf_del_slave(vrf_dev, dev);
        }
 out:
        return NOTIFY_DONE;