Add net device refcount tracker to macvlan.
Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
        port->count += 1;
 
        /* Get macvlan's reference to lowerdev */
-       dev_hold(lowerdev);
+       dev_hold_track(lowerdev, &vlan->dev_tracker, GFP_KERNEL);
 
        return 0;
 }
        struct macvlan_dev *vlan = netdev_priv(dev);
 
        /* Get rid of the macvlan's reference to lowerdev */
-       dev_put(vlan->lowerdev);
+       dev_put_track(vlan->lowerdev, &vlan->dev_tracker);
 }
 
 void macvlan_common_setup(struct net_device *dev)
 
        struct hlist_node       hlist;
        struct macvlan_port     *port;
        struct net_device       *lowerdev;
+       netdevice_tracker       dev_tracker;
        void                    *accel_priv;
        struct vlan_pcpu_stats __percpu *pcpu_stats;