Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: rename reference+tracking helpers

Netdev reference helpers have a dev_ prefix for historic
reasons. Renaming the old helpers would be too much churn
but we can rename the tracking ones which are relatively
recent and should be the default for new code.

Rename:
dev_hold_track() -> netdev_hold()
dev_put_track() -> netdev_put()
dev_replace_track() -> netdev_ref_replace()

Link: https://lore.kernel.org/r/20220608043955.919359-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+141 -137
+2 -2
drivers/net/eql.c
··· 225 225 list_del(&slave->list); 226 226 queue->num_slaves--; 227 227 slave->dev->flags &= ~IFF_SLAVE; 228 - dev_put_track(slave->dev, &slave->dev_tracker); 228 + netdev_put(slave->dev, &slave->dev_tracker); 229 229 kfree(slave); 230 230 } 231 231 ··· 399 399 if (duplicate_slave) 400 400 eql_kill_one_slave(queue, duplicate_slave); 401 401 402 - dev_hold_track(slave->dev, &slave->dev_tracker, GFP_ATOMIC); 402 + netdev_hold(slave->dev, &slave->dev_tracker, GFP_ATOMIC); 403 403 list_add(&slave->list, &queue->all_slaves); 404 404 queue->num_slaves++; 405 405 slave->dev->flags |= IFF_SLAVE;
+2 -2
drivers/net/macsec.c
··· 3462 3462 memcpy(dev->broadcast, real_dev->broadcast, dev->addr_len); 3463 3463 3464 3464 /* Get macsec's reference to real_dev */ 3465 - dev_hold_track(real_dev, &macsec->dev_tracker, GFP_KERNEL); 3465 + netdev_hold(real_dev, &macsec->dev_tracker, GFP_KERNEL); 3466 3466 3467 3467 return 0; 3468 3468 } ··· 3710 3710 free_percpu(macsec->secy.tx_sc.stats); 3711 3711 3712 3712 /* Get rid of the macsec's reference to real_dev */ 3713 - dev_put_track(macsec->real_dev, &macsec->dev_tracker); 3713 + netdev_put(macsec->real_dev, &macsec->dev_tracker); 3714 3714 } 3715 3715 3716 3716 static void macsec_setup(struct net_device *dev)
+2 -2
drivers/net/macvlan.c
··· 915 915 port->count += 1; 916 916 917 917 /* Get macvlan's reference to lowerdev */ 918 - dev_hold_track(lowerdev, &vlan->dev_tracker, GFP_KERNEL); 918 + netdev_hold(lowerdev, &vlan->dev_tracker, GFP_KERNEL); 919 919 920 920 return 0; 921 921 } ··· 1185 1185 struct macvlan_dev *vlan = netdev_priv(dev); 1186 1186 1187 1187 /* Get rid of the macvlan's reference to lowerdev */ 1188 - dev_put_track(vlan->lowerdev, &vlan->dev_tracker); 1188 + netdev_put(vlan->lowerdev, &vlan->dev_tracker); 1189 1189 } 1190 1190 1191 1191 void macvlan_common_setup(struct net_device *dev)
+1 -1
drivers/net/netconsole.c
··· 721 721 __netpoll_cleanup(&nt->np); 722 722 723 723 spin_lock_irqsave(&target_list_lock, flags); 724 - dev_put_track(nt->np.dev, &nt->np.dev_tracker); 724 + netdev_put(nt->np.dev, &nt->np.dev_tracker); 725 725 nt->np.dev = NULL; 726 726 nt->enabled = false; 727 727 stopped = true;
+4 -4
drivers/net/vrf.c
··· 814 814 */ 815 815 if (rt6) { 816 816 dst = &rt6->dst; 817 - dev_replace_track(dst->dev, net->loopback_dev, 818 - &dst->dev_tracker, GFP_KERNEL); 817 + netdev_ref_replace(dst->dev, net->loopback_dev, 818 + &dst->dev_tracker, GFP_KERNEL); 819 819 dst->dev = net->loopback_dev; 820 820 dst_release(dst); 821 821 } ··· 1061 1061 */ 1062 1062 if (rth) { 1063 1063 dst = &rth->dst; 1064 - dev_replace_track(dst->dev, net->loopback_dev, 1065 - &dst->dev_tracker, GFP_KERNEL); 1064 + netdev_ref_replace(dst->dev, net->loopback_dev, 1065 + &dst->dev_tracker, GFP_KERNEL); 1066 1066 dst->dev = net->loopback_dev; 1067 1067 dst_release(dst); 1068 1068 }
+12 -12
include/linux/netdevice.h
··· 3981 3981 #endif 3982 3982 } 3983 3983 3984 - static inline void dev_hold_track(struct net_device *dev, 3985 - netdevice_tracker *tracker, gfp_t gfp) 3984 + static inline void netdev_hold(struct net_device *dev, 3985 + netdevice_tracker *tracker, gfp_t gfp) 3986 3986 { 3987 3987 if (dev) { 3988 3988 __dev_hold(dev); ··· 3990 3990 } 3991 3991 } 3992 3992 3993 - static inline void dev_put_track(struct net_device *dev, 3994 - netdevice_tracker *tracker) 3993 + static inline void netdev_put(struct net_device *dev, 3994 + netdevice_tracker *tracker) 3995 3995 { 3996 3996 if (dev) { 3997 3997 netdev_tracker_free(dev, tracker); ··· 4004 4004 * @dev: network device 4005 4005 * 4006 4006 * Hold reference to device to keep it from being freed. 4007 - * Try using dev_hold_track() instead. 4007 + * Try using netdev_hold() instead. 4008 4008 */ 4009 4009 static inline void dev_hold(struct net_device *dev) 4010 4010 { 4011 - dev_hold_track(dev, NULL, GFP_ATOMIC); 4011 + netdev_hold(dev, NULL, GFP_ATOMIC); 4012 4012 } 4013 4013 4014 4014 /** ··· 4016 4016 * @dev: network device 4017 4017 * 4018 4018 * Release reference to device to allow it to be freed. 4019 - * Try using dev_put_track() instead. 4019 + * Try using netdev_put() instead. 4020 4020 */ 4021 4021 static inline void dev_put(struct net_device *dev) 4022 4022 { 4023 - dev_put_track(dev, NULL); 4023 + netdev_put(dev, NULL); 4024 4024 } 4025 4025 4026 - static inline void dev_replace_track(struct net_device *odev, 4027 - struct net_device *ndev, 4028 - netdevice_tracker *tracker, 4029 - gfp_t gfp) 4026 + static inline void netdev_ref_replace(struct net_device *odev, 4027 + struct net_device *ndev, 4028 + netdevice_tracker *tracker, 4029 + gfp_t gfp) 4030 4030 { 4031 4031 if (odev) 4032 4032 netdev_tracker_free(odev, tracker);
+1 -1
include/net/xfrm.h
··· 1923 1923 if (dev->xfrmdev_ops->xdo_dev_state_free) 1924 1924 dev->xfrmdev_ops->xdo_dev_state_free(x); 1925 1925 xso->dev = NULL; 1926 - dev_put_track(dev, &xso->dev_tracker); 1926 + netdev_put(dev, &xso->dev_tracker); 1927 1927 } 1928 1928 } 1929 1929 #else
+2 -2
net/8021q/vlan_dev.c
··· 615 615 return -ENOMEM; 616 616 617 617 /* Get vlan's reference to real_dev */ 618 - dev_hold_track(real_dev, &vlan->dev_tracker, GFP_KERNEL); 618 + netdev_hold(real_dev, &vlan->dev_tracker, GFP_KERNEL); 619 619 620 620 return 0; 621 621 } ··· 852 852 vlan->vlan_pcpu_stats = NULL; 853 853 854 854 /* Get rid of the vlan's reference to real_dev */ 855 - dev_put_track(vlan->real_dev, &vlan->dev_tracker); 855 + netdev_put(vlan->real_dev, &vlan->dev_tracker); 856 856 } 857 857 858 858 void vlan_setup(struct net_device *dev)
+4 -3
net/ax25/af_ax25.c
··· 102 102 ax25_disconnect(s, ENETUNREACH); 103 103 s->ax25_dev = NULL; 104 104 if (sk->sk_socket) { 105 - dev_put_track(ax25_dev->dev, &ax25_dev->dev_tracker); 105 + netdev_put(ax25_dev->dev, 106 + &ax25_dev->dev_tracker); 106 107 ax25_dev_put(ax25_dev); 107 108 } 108 109 ax25_cb_del(s); ··· 1066 1065 del_timer_sync(&ax25->t3timer); 1067 1066 del_timer_sync(&ax25->idletimer); 1068 1067 } 1069 - dev_put_track(ax25_dev->dev, &ax25_dev->dev_tracker); 1068 + netdev_put(ax25_dev->dev, &ax25_dev->dev_tracker); 1070 1069 ax25_dev_put(ax25_dev); 1071 1070 } 1072 1071 ··· 1147 1146 1148 1147 if (ax25_dev) { 1149 1148 ax25_fillin_cb(ax25, ax25_dev); 1150 - dev_hold_track(ax25_dev->dev, &ax25_dev->dev_tracker, GFP_ATOMIC); 1149 + netdev_hold(ax25_dev->dev, &ax25_dev->dev_tracker, GFP_ATOMIC); 1151 1150 } 1152 1151 1153 1152 done:
+3 -3
net/ax25/ax25_dev.c
··· 60 60 refcount_set(&ax25_dev->refcount, 1); 61 61 dev->ax25_ptr = ax25_dev; 62 62 ax25_dev->dev = dev; 63 - dev_hold_track(dev, &ax25_dev->dev_tracker, GFP_ATOMIC); 63 + netdev_hold(dev, &ax25_dev->dev_tracker, GFP_ATOMIC); 64 64 ax25_dev->forward = NULL; 65 65 ax25_dev->device_up = true; 66 66 ··· 136 136 spin_unlock_bh(&ax25_dev_lock); 137 137 ax25_dev_put(ax25_dev); 138 138 dev->ax25_ptr = NULL; 139 - dev_put_track(dev, &ax25_dev->dev_tracker); 139 + netdev_put(dev, &ax25_dev->dev_tracker); 140 140 ax25_dev_put(ax25_dev); 141 141 } 142 142 ··· 205 205 ax25_dev = ax25_dev_list; 206 206 while (ax25_dev != NULL) { 207 207 s = ax25_dev; 208 - dev_put_track(ax25_dev->dev, &ax25_dev->dev_tracker); 208 + netdev_put(ax25_dev->dev, &ax25_dev->dev_tracker); 209 209 ax25_dev = ax25_dev->next; 210 210 kfree(s); 211 211 }
+5 -5
net/bridge/br_if.c
··· 274 274 275 275 p->br = NULL; 276 276 p->dev = NULL; 277 - dev_put_track(dev, &p->dev_tracker); 277 + netdev_put(dev, &p->dev_tracker); 278 278 279 279 kobject_put(&p->kobj); 280 280 } ··· 423 423 return ERR_PTR(-ENOMEM); 424 424 425 425 p->br = br; 426 - dev_hold_track(dev, &p->dev_tracker, GFP_KERNEL); 426 + netdev_hold(dev, &p->dev_tracker, GFP_KERNEL); 427 427 p->dev = dev; 428 428 p->path_cost = port_cost(dev); 429 429 p->priority = 0x8000 >> BR_PORT_BITS; ··· 434 434 br_stp_port_timer_init(p); 435 435 err = br_multicast_add_port(p); 436 436 if (err) { 437 - dev_put_track(dev, &p->dev_tracker); 437 + netdev_put(dev, &p->dev_tracker); 438 438 kfree(p); 439 439 p = ERR_PTR(err); 440 440 } ··· 615 615 err = dev_set_allmulti(dev, 1); 616 616 if (err) { 617 617 br_multicast_del_port(p); 618 - dev_put_track(dev, &p->dev_tracker); 618 + netdev_put(dev, &p->dev_tracker); 619 619 kfree(p); /* kobject not yet init'd, manually free */ 620 620 goto err1; 621 621 } ··· 725 725 sysfs_remove_link(br->ifobj, p->dev->name); 726 726 err2: 727 727 br_multicast_del_port(p); 728 - dev_put_track(dev, &p->dev_tracker); 728 + netdev_put(dev, &p->dev_tracker); 729 729 kobject_put(&p->kobj); 730 730 dev_set_allmulti(dev, -1); 731 731 err1:
+5 -5
net/core/dev.c
··· 7463 7463 adj->ref_nr = 1; 7464 7464 adj->private = private; 7465 7465 adj->ignore = false; 7466 - dev_hold_track(adj_dev, &adj->dev_tracker, GFP_KERNEL); 7466 + netdev_hold(adj_dev, &adj->dev_tracker, GFP_KERNEL); 7467 7467 7468 7468 pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d; dev_hold on %s\n", 7469 7469 dev->name, adj_dev->name, adj->ref_nr, adj_dev->name); ··· 7492 7492 if (netdev_adjacent_is_neigh_list(dev, adj_dev, dev_list)) 7493 7493 netdev_adjacent_sysfs_del(dev, adj_dev->name, dev_list); 7494 7494 free_adj: 7495 - dev_put_track(adj_dev, &adj->dev_tracker); 7495 + netdev_put(adj_dev, &adj->dev_tracker); 7496 7496 kfree(adj); 7497 7497 7498 7498 return ret; ··· 7534 7534 list_del_rcu(&adj->list); 7535 7535 pr_debug("adjacency: dev_put for %s, because link removed from %s to %s\n", 7536 7536 adj_dev->name, dev->name, adj_dev->name); 7537 - dev_put_track(adj_dev, &adj->dev_tracker); 7537 + netdev_put(adj_dev, &adj->dev_tracker); 7538 7538 kfree_rcu(adj, rcu); 7539 7539 } 7540 7540 ··· 10062 10062 10063 10063 dev_init_scheduler(dev); 10064 10064 10065 - dev_hold_track(dev, &dev->dev_registered_tracker, GFP_KERNEL); 10065 + netdev_hold(dev, &dev->dev_registered_tracker, GFP_KERNEL); 10066 10066 list_netdevice(dev); 10067 10067 10068 10068 add_device_randomness(dev->dev_addr, dev->addr_len); ··· 10868 10868 synchronize_net(); 10869 10869 10870 10870 list_for_each_entry(dev, head, unreg_list) { 10871 - dev_put_track(dev, &dev->dev_registered_tracker); 10871 + netdev_put(dev, &dev->dev_registered_tracker); 10872 10872 net_set_todo(dev); 10873 10873 } 10874 10874
+2 -2
net/core/dev_ioctl.c
··· 384 384 return -ENODEV; 385 385 if (!netif_is_bridge_master(dev)) 386 386 return -EOPNOTSUPP; 387 - dev_hold_track(dev, &dev_tracker, GFP_KERNEL); 387 + netdev_hold(dev, &dev_tracker, GFP_KERNEL); 388 388 rtnl_unlock(); 389 389 err = br_ioctl_call(net, netdev_priv(dev), cmd, ifr, NULL); 390 - dev_put_track(dev, &dev_tracker); 390 + netdev_put(dev, &dev_tracker); 391 391 rtnl_lock(); 392 392 return err; 393 393
+3 -2
net/core/drop_monitor.c
··· 864 864 } 865 865 866 866 hw_metadata->input_dev = metadata->input_dev; 867 - dev_hold_track(hw_metadata->input_dev, &hw_metadata->dev_tracker, GFP_ATOMIC); 867 + netdev_hold(hw_metadata->input_dev, &hw_metadata->dev_tracker, 868 + GFP_ATOMIC); 868 869 869 870 return hw_metadata; 870 871 ··· 881 880 static void 882 881 net_dm_hw_metadata_free(struct devlink_trap_metadata *hw_metadata) 883 882 { 884 - dev_put_track(hw_metadata->input_dev, &hw_metadata->dev_tracker); 883 + netdev_put(hw_metadata->input_dev, &hw_metadata->dev_tracker); 885 884 kfree(hw_metadata->fa_cookie); 886 885 kfree(hw_metadata->trap_name); 887 886 kfree(hw_metadata->trap_group_name);
+4 -4
net/core/dst.c
··· 49 49 unsigned short flags) 50 50 { 51 51 dst->dev = dev; 52 - dev_hold_track(dev, &dst->dev_tracker, GFP_ATOMIC); 52 + netdev_hold(dev, &dst->dev_tracker, GFP_ATOMIC); 53 53 dst->ops = ops; 54 54 dst_init_metrics(dst, dst_default_metrics.metrics, true); 55 55 dst->expires = 0UL; ··· 117 117 118 118 if (dst->ops->destroy) 119 119 dst->ops->destroy(dst); 120 - dev_put_track(dst->dev, &dst->dev_tracker); 120 + netdev_put(dst->dev, &dst->dev_tracker); 121 121 122 122 lwtstate_put(dst->lwtstate); 123 123 ··· 159 159 dst->input = dst_discard; 160 160 dst->output = dst_discard_out; 161 161 dst->dev = blackhole_netdev; 162 - dev_replace_track(dev, blackhole_netdev, &dst->dev_tracker, 163 - GFP_ATOMIC); 162 + netdev_ref_replace(dev, blackhole_netdev, &dst->dev_tracker, 163 + GFP_ATOMIC); 164 164 } 165 165 EXPORT_SYMBOL(dst_dev_put); 166 166
+2 -2
net/core/failover.c
··· 252 252 return ERR_PTR(-ENOMEM); 253 253 254 254 rcu_assign_pointer(failover->ops, ops); 255 - dev_hold_track(dev, &failover->dev_tracker, GFP_KERNEL); 255 + netdev_hold(dev, &failover->dev_tracker, GFP_KERNEL); 256 256 dev->priv_flags |= IFF_FAILOVER; 257 257 rcu_assign_pointer(failover->failover_dev, dev); 258 258 ··· 285 285 failover_dev->name); 286 286 287 287 failover_dev->priv_flags &= ~IFF_FAILOVER; 288 - dev_put_track(failover_dev, &failover->dev_tracker); 288 + netdev_put(failover_dev, &failover->dev_tracker); 289 289 290 290 spin_lock(&failover_lock); 291 291 list_del(&failover->list);
+9 -9
net/core/neighbour.c
··· 624 624 625 625 memcpy(n->primary_key, pkey, key_len); 626 626 n->dev = dev; 627 - dev_hold_track(dev, &n->dev_tracker, GFP_ATOMIC); 627 + netdev_hold(dev, &n->dev_tracker, GFP_ATOMIC); 628 628 629 629 /* Protocol specific setup. */ 630 630 if (tbl->constructor && (error = tbl->constructor(n)) < 0) { ··· 770 770 write_pnet(&n->net, net); 771 771 memcpy(n->key, pkey, key_len); 772 772 n->dev = dev; 773 - dev_hold_track(dev, &n->dev_tracker, GFP_KERNEL); 773 + netdev_hold(dev, &n->dev_tracker, GFP_KERNEL); 774 774 775 775 if (tbl->pconstructor && tbl->pconstructor(n)) { 776 - dev_put_track(dev, &n->dev_tracker); 776 + netdev_put(dev, &n->dev_tracker); 777 777 kfree(n); 778 778 n = NULL; 779 779 goto out; ··· 805 805 write_unlock_bh(&tbl->lock); 806 806 if (tbl->pdestructor) 807 807 tbl->pdestructor(n); 808 - dev_put_track(n->dev, &n->dev_tracker); 808 + netdev_put(n->dev, &n->dev_tracker); 809 809 kfree(n); 810 810 return 0; 811 811 } ··· 838 838 n->next = NULL; 839 839 if (tbl->pdestructor) 840 840 tbl->pdestructor(n); 841 - dev_put_track(n->dev, &n->dev_tracker); 841 + netdev_put(n->dev, &n->dev_tracker); 842 842 kfree(n); 843 843 } 844 844 return -ENOENT; ··· 879 879 if (dev->netdev_ops->ndo_neigh_destroy) 880 880 dev->netdev_ops->ndo_neigh_destroy(dev, neigh); 881 881 882 - dev_put_track(dev, &neigh->dev_tracker); 882 + netdev_put(dev, &neigh->dev_tracker); 883 883 neigh_parms_put(neigh->parms); 884 884 885 885 neigh_dbg(2, "neigh %p is destroyed\n", neigh); ··· 1671 1671 refcount_set(&p->refcnt, 1); 1672 1672 p->reachable_time = 1673 1673 neigh_rand_reach_time(NEIGH_VAR(p, BASE_REACHABLE_TIME)); 1674 - dev_hold_track(dev, &p->dev_tracker, GFP_KERNEL); 1674 + netdev_hold(dev, &p->dev_tracker, GFP_KERNEL); 1675 1675 p->dev = dev; 1676 1676 write_pnet(&p->net, net); 1677 1677 p->sysctl_table = NULL; 1678 1678 1679 1679 if (ops->ndo_neigh_setup && ops->ndo_neigh_setup(dev, p)) { 1680 - dev_put_track(dev, &p->dev_tracker); 1680 + netdev_put(dev, &p->dev_tracker); 1681 1681 kfree(p); 1682 1682 return NULL; 1683 1683 } ··· 1708 1708 list_del(&parms->list); 1709 1709 parms->dead = 1; 1710 1710 write_unlock_bh(&tbl->lock); 1711 - dev_put_track(parms->dev, &parms->dev_tracker); 1711 + netdev_put(parms->dev, &parms->dev_tracker); 1712 1712 call_rcu(&parms->rcu_head, neigh_rcu_free_parms); 1713 1713 } 1714 1714 EXPORT_SYMBOL(neigh_parms_release);
+4 -4
net/core/net-sysfs.c
··· 1016 1016 #endif 1017 1017 1018 1018 memset(kobj, 0, sizeof(*kobj)); 1019 - dev_put_track(queue->dev, &queue->dev_tracker); 1019 + netdev_put(queue->dev, &queue->dev_tracker); 1020 1020 } 1021 1021 1022 1022 static const void *rx_queue_namespace(struct kobject *kobj) ··· 1056 1056 /* Kobject_put later will trigger rx_queue_release call which 1057 1057 * decreases dev refcount: Take that reference here 1058 1058 */ 1059 - dev_hold_track(queue->dev, &queue->dev_tracker, GFP_KERNEL); 1059 + netdev_hold(queue->dev, &queue->dev_tracker, GFP_KERNEL); 1060 1060 1061 1061 kobj->kset = dev->queues_kset; 1062 1062 error = kobject_init_and_add(kobj, &rx_queue_ktype, NULL, ··· 1619 1619 struct netdev_queue *queue = to_netdev_queue(kobj); 1620 1620 1621 1621 memset(kobj, 0, sizeof(*kobj)); 1622 - dev_put_track(queue->dev, &queue->dev_tracker); 1622 + netdev_put(queue->dev, &queue->dev_tracker); 1623 1623 } 1624 1624 1625 1625 static const void *netdev_queue_namespace(struct kobject *kobj) ··· 1659 1659 /* Kobject_put later will trigger netdev_queue_release call 1660 1660 * which decreases dev refcount: Take that reference here 1661 1661 */ 1662 - dev_hold_track(queue->dev, &queue->dev_tracker, GFP_KERNEL); 1662 + netdev_hold(queue->dev, &queue->dev_tracker, GFP_KERNEL); 1663 1663 1664 1664 kobj->kset = dev->queues_kset; 1665 1665 error = kobject_init_and_add(kobj, &netdev_queue_ktype, NULL,
+1 -1
net/core/netpoll.c
··· 853 853 if (!np->dev) 854 854 goto out; 855 855 __netpoll_cleanup(np); 856 - dev_put_track(np->dev, &np->dev_tracker); 856 + netdev_put(np->dev, &np->dev_tracker); 857 857 np->dev = NULL; 858 858 out: 859 859 rtnl_unlock();
+3 -3
net/core/pktgen.c
··· 2100 2100 2101 2101 /* Clean old setups */ 2102 2102 if (pkt_dev->odev) { 2103 - dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker); 2103 + netdev_put(pkt_dev->odev, &pkt_dev->dev_tracker); 2104 2104 pkt_dev->odev = NULL; 2105 2105 } 2106 2106 ··· 3807 3807 3808 3808 return add_dev_to_thread(t, pkt_dev); 3809 3809 out2: 3810 - dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker); 3810 + netdev_put(pkt_dev->odev, &pkt_dev->dev_tracker); 3811 3811 out1: 3812 3812 #ifdef CONFIG_XFRM 3813 3813 free_SAs(pkt_dev); ··· 3901 3901 /* Dis-associate from the interface */ 3902 3902 3903 3903 if (pkt_dev->odev) { 3904 - dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker); 3904 + netdev_put(pkt_dev->odev, &pkt_dev->dev_tracker); 3905 3905 pkt_dev->odev = NULL; 3906 3906 } 3907 3907
+2 -2
net/ethtool/ioctl.c
··· 2010 2010 * removal of the device. 2011 2011 */ 2012 2012 busy = true; 2013 - dev_hold_track(dev, &dev_tracker, GFP_KERNEL); 2013 + netdev_hold(dev, &dev_tracker, GFP_KERNEL); 2014 2014 rtnl_unlock(); 2015 2015 2016 2016 if (rc == 0) { ··· 2034 2034 } 2035 2035 2036 2036 rtnl_lock(); 2037 - dev_put_track(dev, &dev_tracker); 2037 + netdev_put(dev, &dev_tracker); 2038 2038 busy = false; 2039 2039 2040 2040 (void) ops->set_phys_id(dev, ETHTOOL_ID_INACTIVE);
+3 -3
net/ethtool/netlink.c
··· 402 402 ops->cleanup_data(reply_data); 403 403 404 404 genlmsg_end(rskb, reply_payload); 405 - dev_put_track(req_info->dev, &req_info->dev_tracker); 405 + netdev_put(req_info->dev, &req_info->dev_tracker); 406 406 kfree(reply_data); 407 407 kfree(req_info); 408 408 return genlmsg_reply(rskb, info); ··· 414 414 if (ops->cleanup_data) 415 415 ops->cleanup_data(reply_data); 416 416 err_dev: 417 - dev_put_track(req_info->dev, &req_info->dev_tracker); 417 + netdev_put(req_info->dev, &req_info->dev_tracker); 418 418 kfree(reply_data); 419 419 kfree(req_info); 420 420 return ret; ··· 550 550 * same parser as for non-dump (doit) requests is used, it 551 551 * would take reference to the device if it finds one 552 552 */ 553 - dev_put_track(req_info->dev, &req_info->dev_tracker); 553 + netdev_put(req_info->dev, &req_info->dev_tracker); 554 554 req_info->dev = NULL; 555 555 } 556 556 if (ret < 0)
+1 -1
net/ethtool/netlink.h
··· 237 237 238 238 static inline void ethnl_parse_header_dev_put(struct ethnl_req_info *req_info) 239 239 { 240 - dev_put_track(req_info->dev, &req_info->dev_tracker); 240 + netdev_put(req_info->dev, &req_info->dev_tracker); 241 241 } 242 242 243 243 /**
+2 -2
net/ipv4/devinet.c
··· 244 244 #ifdef NET_REFCNT_DEBUG 245 245 pr_debug("%s: %p=%s\n", __func__, idev, dev ? dev->name : "NIL"); 246 246 #endif 247 - dev_put_track(dev, &idev->dev_tracker); 247 + netdev_put(dev, &idev->dev_tracker); 248 248 if (!idev->dead) 249 249 pr_err("Freeing alive in_device %p\n", idev); 250 250 else ··· 272 272 if (IPV4_DEVCONF(in_dev->cnf, FORWARDING)) 273 273 dev_disable_lro(dev); 274 274 /* Reference in_dev->dev */ 275 - dev_hold_track(dev, &in_dev->dev_tracker, GFP_KERNEL); 275 + netdev_hold(dev, &in_dev->dev_tracker, GFP_KERNEL); 276 276 /* Account for reference dev->ip_ptr (below) */ 277 277 refcount_set(&in_dev->refcnt, 1); 278 278
+6 -5
net/ipv4/fib_semantics.c
··· 211 211 212 212 void fib_nh_common_release(struct fib_nh_common *nhc) 213 213 { 214 - dev_put_track(nhc->nhc_dev, &nhc->nhc_dev_tracker); 214 + netdev_put(nhc->nhc_dev, &nhc->nhc_dev_tracker); 215 215 lwtstate_put(nhc->nhc_lwtstate); 216 216 rt_fibinfo_free_cpus(nhc->nhc_pcpu_rth_output); 217 217 rt_fibinfo_free(&nhc->nhc_rth_input); ··· 1057 1057 err = ipv6_stub->fib6_nh_init(net, &fib6_nh, &cfg, GFP_KERNEL, extack); 1058 1058 if (!err) { 1059 1059 nh->fib_nh_dev = fib6_nh.fib_nh_dev; 1060 - dev_hold_track(nh->fib_nh_dev, &nh->fib_nh_dev_tracker, GFP_KERNEL); 1060 + netdev_hold(nh->fib_nh_dev, &nh->fib_nh_dev_tracker, 1061 + GFP_KERNEL); 1061 1062 nh->fib_nh_oif = nh->fib_nh_dev->ifindex; 1062 1063 nh->fib_nh_scope = RT_SCOPE_LINK; 1063 1064 ··· 1142 1141 if (!netif_carrier_ok(dev)) 1143 1142 nh->fib_nh_flags |= RTNH_F_LINKDOWN; 1144 1143 nh->fib_nh_dev = dev; 1145 - dev_hold_track(dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); 1144 + netdev_hold(dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); 1146 1145 nh->fib_nh_scope = RT_SCOPE_LINK; 1147 1146 return 0; 1148 1147 } ··· 1196 1195 "No egress device for nexthop gateway"); 1197 1196 goto out; 1198 1197 } 1199 - dev_hold_track(dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); 1198 + netdev_hold(dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); 1200 1199 if (!netif_carrier_ok(dev)) 1201 1200 nh->fib_nh_flags |= RTNH_F_LINKDOWN; 1202 1201 err = (dev->flags & IFF_UP) ? 0 : -ENETDOWN; ··· 1230 1229 } 1231 1230 1232 1231 nh->fib_nh_dev = in_dev->dev; 1233 - dev_hold_track(nh->fib_nh_dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); 1232 + netdev_hold(nh->fib_nh_dev, &nh->fib_nh_dev_tracker, GFP_ATOMIC); 1234 1233 nh->fib_nh_scope = RT_SCOPE_HOST; 1235 1234 if (!netif_carrier_ok(nh->fib_nh_dev)) 1236 1235 nh->fib_nh_flags |= RTNH_F_LINKDOWN;
+1 -1
net/ipv4/ipmr.c
··· 691 691 if (v->flags & (VIFF_TUNNEL | VIFF_REGISTER) && !notify) 692 692 unregister_netdevice_queue(dev, head); 693 693 694 - dev_put_track(dev, &v->dev_tracker); 694 + netdev_put(dev, &v->dev_tracker); 695 695 return 0; 696 696 } 697 697
+3 -4
net/ipv4/route.c
··· 1550 1550 if (rt->dst.dev != dev) 1551 1551 continue; 1552 1552 rt->dst.dev = blackhole_netdev; 1553 - dev_replace_track(dev, blackhole_netdev, 1554 - &rt->dst.dev_tracker, 1555 - GFP_ATOMIC); 1553 + netdev_ref_replace(dev, blackhole_netdev, 1554 + &rt->dst.dev_tracker, GFP_ATOMIC); 1556 1555 list_move(&rt->rt_uncached, &ul->quarantine); 1557 1556 } 1558 1557 spin_unlock_bh(&ul->lock); ··· 2850 2851 new->output = dst_discard_out; 2851 2852 2852 2853 new->dev = net->loopback_dev; 2853 - dev_hold_track(new->dev, &new->dev_tracker, GFP_ATOMIC); 2854 + netdev_hold(new->dev, &new->dev_tracker, GFP_ATOMIC); 2854 2855 2855 2856 rt->rt_is_input = ort->rt_is_input; 2856 2857 rt->rt_iif = ort->rt_iif;
+1 -1
net/ipv4/xfrm4_policy.c
··· 75 75 xdst->u.rt.rt_iif = fl4->flowi4_iif; 76 76 77 77 xdst->u.dst.dev = dev; 78 - dev_hold_track(dev, &xdst->u.dst.dev_tracker, GFP_ATOMIC); 78 + netdev_hold(dev, &xdst->u.dst.dev_tracker, GFP_ATOMIC); 79 79 80 80 /* Sheit... I remember I did this right. Apparently, 81 81 * it was magically lost, so this code needs audit */
+2 -2
net/ipv6/addrconf.c
··· 398 398 if (ndev->cnf.forwarding) 399 399 dev_disable_lro(dev); 400 400 /* We refer to the device */ 401 - dev_hold_track(dev, &ndev->dev_tracker, GFP_KERNEL); 401 + netdev_hold(dev, &ndev->dev_tracker, GFP_KERNEL); 402 402 403 403 if (snmp6_alloc_dev(ndev) < 0) { 404 404 netdev_dbg(dev, "%s: cannot allocate memory for statistics\n", 405 405 __func__); 406 406 neigh_parms_release(&nd_tbl, ndev->nd_parms); 407 - dev_put_track(dev, &ndev->dev_tracker); 407 + netdev_put(dev, &ndev->dev_tracker); 408 408 kfree(ndev); 409 409 return ERR_PTR(err); 410 410 }
+1 -1
net/ipv6/addrconf_core.c
··· 263 263 #ifdef NET_REFCNT_DEBUG 264 264 pr_debug("%s: %s\n", __func__, dev ? dev->name : "NIL"); 265 265 #endif 266 - dev_put_track(dev, &idev->dev_tracker); 266 + netdev_put(dev, &idev->dev_tracker); 267 267 if (!idev->dead) { 268 268 pr_warn("Freeing alive inet6 device %p\n", idev); 269 269 return;
+4 -4
net/ipv6/ip6_gre.c
··· 398 398 ip6erspan_tunnel_unlink_md(ign, t); 399 399 ip6gre_tunnel_unlink(ign, t); 400 400 dst_cache_reset(&t->dst_cache); 401 - dev_put_track(dev, &t->dev_tracker); 401 + netdev_put(dev, &t->dev_tracker); 402 402 } 403 403 404 404 static void ip6gre_tunnel_uninit(struct net_device *dev) ··· 411 411 if (ign->fb_tunnel_dev == dev) 412 412 WRITE_ONCE(ign->fb_tunnel_dev, NULL); 413 413 dst_cache_reset(&t->dst_cache); 414 - dev_put_track(dev, &t->dev_tracker); 414 + netdev_put(dev, &t->dev_tracker); 415 415 } 416 416 417 417 ··· 1495 1495 } 1496 1496 ip6gre_tnl_init_features(dev); 1497 1497 1498 - dev_hold_track(dev, &tunnel->dev_tracker, GFP_KERNEL); 1498 + netdev_hold(dev, &tunnel->dev_tracker, GFP_KERNEL); 1499 1499 return 0; 1500 1500 1501 1501 cleanup_dst_cache_init: ··· 1887 1887 dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; 1888 1888 ip6erspan_tnl_link_config(tunnel, 1); 1889 1889 1890 - dev_hold_track(dev, &tunnel->dev_tracker, GFP_KERNEL); 1890 + netdev_hold(dev, &tunnel->dev_tracker, GFP_KERNEL); 1891 1891 return 0; 1892 1892 1893 1893 cleanup_dst_cache_init:
+2 -2
net/ipv6/ip6_tunnel.c
··· 381 381 else 382 382 ip6_tnl_unlink(ip6n, t); 383 383 dst_cache_reset(&t->dst_cache); 384 - dev_put_track(dev, &t->dev_tracker); 384 + netdev_put(dev, &t->dev_tracker); 385 385 } 386 386 387 387 /** ··· 1889 1889 dev->min_mtu = ETH_MIN_MTU; 1890 1890 dev->max_mtu = IP6_MAX_MTU - dev->hard_header_len; 1891 1891 1892 - dev_hold_track(dev, &t->dev_tracker, GFP_KERNEL); 1892 + netdev_hold(dev, &t->dev_tracker, GFP_KERNEL); 1893 1893 return 0; 1894 1894 1895 1895 destroy_dst:
+2 -2
net/ipv6/ip6_vti.c
··· 293 293 RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL); 294 294 else 295 295 vti6_tnl_unlink(ip6n, t); 296 - dev_put_track(dev, &t->dev_tracker); 296 + netdev_put(dev, &t->dev_tracker); 297 297 } 298 298 299 299 static int vti6_input_proto(struct sk_buff *skb, int nexthdr, __be32 spi, ··· 936 936 dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats); 937 937 if (!dev->tstats) 938 938 return -ENOMEM; 939 - dev_hold_track(dev, &t->dev_tracker, GFP_KERNEL); 939 + netdev_hold(dev, &t->dev_tracker, GFP_KERNEL); 940 940 return 0; 941 941 } 942 942
+1 -1
net/ipv6/ip6mr.c
··· 741 741 if ((v->flags & MIFF_REGISTER) && !notify) 742 742 unregister_netdevice_queue(dev, head); 743 743 744 - dev_put_track(dev, &v->dev_tracker); 744 + netdev_put(dev, &v->dev_tracker); 745 745 return 0; 746 746 } 747 747
+5 -5
net/ipv6/route.c
··· 182 182 183 183 if (rt_dev == dev) { 184 184 rt->dst.dev = blackhole_netdev; 185 - dev_replace_track(rt_dev, blackhole_netdev, 186 - &rt->dst.dev_tracker, 187 - GFP_ATOMIC); 185 + netdev_ref_replace(rt_dev, blackhole_netdev, 186 + &rt->dst.dev_tracker, 187 + GFP_ATOMIC); 188 188 handled = true; 189 189 } 190 190 if (handled) ··· 607 607 608 608 addrconf_addr_solict_mult(&work->target, &mcaddr); 609 609 ndisc_send_ns(work->dev, &work->target, &mcaddr, NULL, 0); 610 - dev_put_track(work->dev, &work->dev_tracker); 610 + netdev_put(work->dev, &work->dev_tracker); 611 611 kfree(work); 612 612 } 613 613 ··· 661 661 } else { 662 662 INIT_WORK(&work->work, rt6_probe_deferred); 663 663 work->target = *nh_gw; 664 - dev_hold_track(dev, &work->dev_tracker, GFP_ATOMIC); 664 + netdev_hold(dev, &work->dev_tracker, GFP_ATOMIC); 665 665 work->dev = dev; 666 666 schedule_work(&work->work); 667 667 }
+2 -2
net/ipv6/sit.c
··· 521 521 ipip6_tunnel_del_prl(tunnel, NULL); 522 522 } 523 523 dst_cache_reset(&tunnel->dst_cache); 524 - dev_put_track(dev, &tunnel->dev_tracker); 524 + netdev_put(dev, &tunnel->dev_tracker); 525 525 } 526 526 527 527 static int ipip6_err(struct sk_buff *skb, u32 info) ··· 1463 1463 dev->tstats = NULL; 1464 1464 return err; 1465 1465 } 1466 - dev_hold_track(dev, &tunnel->dev_tracker, GFP_KERNEL); 1466 + netdev_hold(dev, &tunnel->dev_tracker, GFP_KERNEL); 1467 1467 return 0; 1468 1468 } 1469 1469
+2 -2
net/ipv6/xfrm6_policy.c
··· 73 73 struct rt6_info *rt = (struct rt6_info *)xdst->route; 74 74 75 75 xdst->u.dst.dev = dev; 76 - dev_hold_track(dev, &xdst->u.dst.dev_tracker, GFP_ATOMIC); 76 + netdev_hold(dev, &xdst->u.dst.dev_tracker, GFP_ATOMIC); 77 77 78 78 xdst->u.rt6.rt6i_idev = in6_dev_get(dev); 79 79 if (!xdst->u.rt6.rt6i_idev) { 80 - dev_put_track(dev, &xdst->u.dst.dev_tracker); 80 + netdev_put(dev, &xdst->u.dst.dev_tracker); 81 81 return -ENODEV; 82 82 } 83 83
+1 -1
net/llc/af_llc.c
··· 224 224 } else { 225 225 release_sock(sk); 226 226 } 227 - dev_put_track(llc->dev, &llc->dev_tracker); 227 + netdev_put(llc->dev, &llc->dev_tracker); 228 228 sock_put(sk); 229 229 llc_sk_free(sk); 230 230 out:
+3 -3
net/openvswitch/vport-netdev.c
··· 115 115 error_unlock: 116 116 rtnl_unlock(); 117 117 error_put: 118 - dev_put_track(vport->dev, &vport->dev_tracker); 118 + netdev_put(vport->dev, &vport->dev_tracker); 119 119 error_free_vport: 120 120 ovs_vport_free(vport); 121 121 return ERR_PTR(err); ··· 137 137 { 138 138 struct vport *vport = container_of(rcu, struct vport, rcu); 139 139 140 - dev_put_track(vport->dev, &vport->dev_tracker); 140 + netdev_put(vport->dev, &vport->dev_tracker); 141 141 ovs_vport_free(vport); 142 142 } 143 143 ··· 173 173 */ 174 174 if (vport->dev->reg_state == NETREG_REGISTERED) 175 175 rtnl_delete_link(vport->dev); 176 - dev_put_track(vport->dev, &vport->dev_tracker); 176 + netdev_put(vport->dev, &vport->dev_tracker); 177 177 vport->dev = NULL; 178 178 rtnl_unlock(); 179 179
+6 -6
net/packet/af_packet.c
··· 3134 3134 packet_cached_dev_reset(po); 3135 3135 3136 3136 if (po->prot_hook.dev) { 3137 - dev_put_track(po->prot_hook.dev, &po->prot_hook.dev_tracker); 3137 + netdev_put(po->prot_hook.dev, &po->prot_hook.dev_tracker); 3138 3138 po->prot_hook.dev = NULL; 3139 3139 } 3140 3140 spin_unlock(&po->bind_lock); ··· 3235 3235 WRITE_ONCE(po->num, proto); 3236 3236 po->prot_hook.type = proto; 3237 3237 3238 - dev_put_track(po->prot_hook.dev, &po->prot_hook.dev_tracker); 3238 + netdev_put(po->prot_hook.dev, &po->prot_hook.dev_tracker); 3239 3239 3240 3240 if (unlikely(unlisted)) { 3241 3241 po->prot_hook.dev = NULL; 3242 3242 WRITE_ONCE(po->ifindex, -1); 3243 3243 packet_cached_dev_reset(po); 3244 3244 } else { 3245 - dev_hold_track(dev, &po->prot_hook.dev_tracker, 3246 - GFP_ATOMIC); 3245 + netdev_hold(dev, &po->prot_hook.dev_tracker, 3246 + GFP_ATOMIC); 3247 3247 po->prot_hook.dev = dev; 3248 3248 WRITE_ONCE(po->ifindex, dev ? dev->ifindex : 0); 3249 3249 packet_cached_dev_assign(po, dev); ··· 4167 4167 if (msg == NETDEV_UNREGISTER) { 4168 4168 packet_cached_dev_reset(po); 4169 4169 WRITE_ONCE(po->ifindex, -1); 4170 - dev_put_track(po->prot_hook.dev, 4171 - &po->prot_hook.dev_tracker); 4170 + netdev_put(po->prot_hook.dev, 4171 + &po->prot_hook.dev_tracker); 4172 4172 po->prot_hook.dev = NULL; 4173 4173 } 4174 4174 spin_unlock(&po->bind_lock);
+3 -3
net/sched/act_mirred.c
··· 79 79 80 80 /* last reference to action, no need to lock */ 81 81 dev = rcu_dereference_protected(m->tcfm_dev, 1); 82 - dev_put_track(dev, &m->tcfm_dev_tracker); 82 + netdev_put(dev, &m->tcfm_dev_tracker); 83 83 } 84 84 85 85 static const struct nla_policy mirred_policy[TCA_MIRRED_MAX + 1] = { ··· 181 181 mac_header_xmit = dev_is_mac_header_xmit(ndev); 182 182 odev = rcu_replace_pointer(m->tcfm_dev, ndev, 183 183 lockdep_is_held(&m->tcf_lock)); 184 - dev_put_track(odev, &m->tcfm_dev_tracker); 184 + netdev_put(odev, &m->tcfm_dev_tracker); 185 185 netdev_tracker_alloc(ndev, &m->tcfm_dev_tracker, GFP_ATOMIC); 186 186 m->tcfm_mac_header_xmit = mac_header_xmit; 187 187 } ··· 402 402 list_for_each_entry(m, &mirred_list, tcfm_list) { 403 403 spin_lock_bh(&m->tcf_lock); 404 404 if (tcf_mirred_dev_dereference(m) == dev) { 405 - dev_put_track(dev, &m->tcfm_dev_tracker); 405 + netdev_put(dev, &m->tcfm_dev_tracker); 406 406 /* Note : no rcu grace period necessary, as 407 407 * net_device are already rcu protected. 408 408 */
+1 -1
net/sched/sch_api.c
··· 1292 1292 if (ops->destroy) 1293 1293 ops->destroy(sch); 1294 1294 err_out3: 1295 - dev_put_track(dev, &sch->dev_tracker); 1295 + netdev_put(dev, &sch->dev_tracker); 1296 1296 qdisc_free(sch); 1297 1297 err_out2: 1298 1298 module_put(ops->owner);
+6 -5
net/sched/sch_generic.c
··· 541 541 spin_unlock(&dev->tx_global_lock); 542 542 543 543 if (release) 544 - dev_put_track(dev, &dev->watchdog_dev_tracker); 544 + netdev_put(dev, &dev->watchdog_dev_tracker); 545 545 } 546 546 547 547 void __netdev_watchdog_up(struct net_device *dev) ··· 551 551 dev->watchdog_timeo = 5*HZ; 552 552 if (!mod_timer(&dev->watchdog_timer, 553 553 round_jiffies(jiffies + dev->watchdog_timeo))) 554 - dev_hold_track(dev, &dev->watchdog_dev_tracker, GFP_ATOMIC); 554 + netdev_hold(dev, &dev->watchdog_dev_tracker, 555 + GFP_ATOMIC); 555 556 } 556 557 } 557 558 EXPORT_SYMBOL_GPL(__netdev_watchdog_up); ··· 566 565 { 567 566 netif_tx_lock_bh(dev); 568 567 if (del_timer(&dev->watchdog_timer)) 569 - dev_put_track(dev, &dev->watchdog_dev_tracker); 568 + netdev_put(dev, &dev->watchdog_dev_tracker); 570 569 netif_tx_unlock_bh(dev); 571 570 } 572 571 ··· 976 975 sch->enqueue = ops->enqueue; 977 976 sch->dequeue = ops->dequeue; 978 977 sch->dev_queue = dev_queue; 979 - dev_hold_track(dev, &sch->dev_tracker, GFP_KERNEL); 978 + netdev_hold(dev, &sch->dev_tracker, GFP_KERNEL); 980 979 refcount_set(&sch->refcnt, 1); 981 980 982 981 return sch; ··· 1068 1067 ops->destroy(qdisc); 1069 1068 1070 1069 module_put(ops->owner); 1071 - dev_put_track(qdisc_dev(qdisc), &qdisc->dev_tracker); 1070 + netdev_put(qdisc_dev(qdisc), &qdisc->dev_tracker); 1072 1071 1073 1072 trace_qdisc_destroy(qdisc); 1074 1073
+4 -3
net/smc/smc_pnet.c
··· 120 120 smc_pnet_match(pnetelem->pnet_name, pnet_name)) { 121 121 list_del(&pnetelem->list); 122 122 if (pnetelem->type == SMC_PNET_ETH && pnetelem->ndev) { 123 - dev_put_track(pnetelem->ndev, &pnetelem->dev_tracker); 123 + netdev_put(pnetelem->ndev, 124 + &pnetelem->dev_tracker); 124 125 pr_warn_ratelimited("smc: net device %s " 125 126 "erased user defined " 126 127 "pnetid %.16s\n", ··· 197 196 list_for_each_entry_safe(pnetelem, tmp_pe, &pnettable->pnetlist, list) { 198 197 if (pnetelem->type == SMC_PNET_ETH && !pnetelem->ndev && 199 198 !strncmp(pnetelem->eth_name, ndev->name, IFNAMSIZ)) { 200 - dev_hold_track(ndev, &pnetelem->dev_tracker, GFP_ATOMIC); 199 + netdev_hold(ndev, &pnetelem->dev_tracker, GFP_ATOMIC); 201 200 pnetelem->ndev = ndev; 202 201 rc = 0; 203 202 pr_warn_ratelimited("smc: adding net device %s with " ··· 228 227 mutex_lock(&pnettable->lock); 229 228 list_for_each_entry_safe(pnetelem, tmp_pe, &pnettable->pnetlist, list) { 230 229 if (pnetelem->type == SMC_PNET_ETH && pnetelem->ndev == ndev) { 231 - dev_put_track(pnetelem->ndev, &pnetelem->dev_tracker); 230 + netdev_put(pnetelem->ndev, &pnetelem->dev_tracker); 232 231 pnetelem->ndev = NULL; 233 232 rc = 0; 234 233 pr_warn_ratelimited("smc: removing net device %s with "
+2 -2
net/switchdev/switchdev.c
··· 64 64 65 65 while ((dfitem = switchdev_deferred_dequeue())) { 66 66 dfitem->func(dfitem->dev, dfitem->data); 67 - dev_put_track(dfitem->dev, &dfitem->dev_tracker); 67 + netdev_put(dfitem->dev, &dfitem->dev_tracker); 68 68 kfree(dfitem); 69 69 } 70 70 } ··· 91 91 dfitem->dev = dev; 92 92 dfitem->func = func; 93 93 memcpy(dfitem->data, data, data_len); 94 - dev_hold_track(dev, &dfitem->dev_tracker, GFP_ATOMIC); 94 + netdev_hold(dev, &dfitem->dev_tracker, GFP_ATOMIC); 95 95 spin_lock_bh(&deferred_lock); 96 96 list_add_tail(&dfitem->list, &deferred); 97 97 spin_unlock_bh(&deferred_lock);
+2 -2
net/tipc/bearer.c
··· 788 788 if (!dev) 789 789 return -ENODEV; 790 790 791 - dev_hold_track(dev, &tn->loopback_pt.dev_tracker, GFP_KERNEL); 791 + netdev_hold(dev, &tn->loopback_pt.dev_tracker, GFP_KERNEL); 792 792 tn->loopback_pt.dev = dev; 793 793 tn->loopback_pt.type = htons(ETH_P_TIPC); 794 794 tn->loopback_pt.func = tipc_loopback_rcv_pkt; ··· 801 801 struct tipc_net *tn = tipc_net(net); 802 802 803 803 dev_remove_pack(&tn->loopback_pt); 804 - dev_put_track(net->loopback_dev, &tn->loopback_pt.dev_tracker); 804 + netdev_put(net->loopback_dev, &tn->loopback_pt.dev_tracker); 805 805 } 806 806 807 807 /* Caller should hold rtnl_lock to protect the bearer */
+1 -1
net/xfrm/xfrm_device.c
··· 275 275 xso->dev = NULL; 276 276 xso->dir = 0; 277 277 xso->real_dev = NULL; 278 - dev_put_track(dev, &xso->dev_tracker); 278 + netdev_put(dev, &xso->dev_tracker); 279 279 280 280 if (err != -EOPNOTSUPP) 281 281 return err;