You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
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>
This commit is contained in:
@@ -225,7 +225,7 @@ static void eql_kill_one_slave(slave_queue_t *queue, slave_t *slave)
|
||||
list_del(&slave->list);
|
||||
queue->num_slaves--;
|
||||
slave->dev->flags &= ~IFF_SLAVE;
|
||||
dev_put_track(slave->dev, &slave->dev_tracker);
|
||||
netdev_put(slave->dev, &slave->dev_tracker);
|
||||
kfree(slave);
|
||||
}
|
||||
|
||||
@@ -399,7 +399,7 @@ static int __eql_insert_slave(slave_queue_t *queue, slave_t *slave)
|
||||
if (duplicate_slave)
|
||||
eql_kill_one_slave(queue, duplicate_slave);
|
||||
|
||||
dev_hold_track(slave->dev, &slave->dev_tracker, GFP_ATOMIC);
|
||||
netdev_hold(slave->dev, &slave->dev_tracker, GFP_ATOMIC);
|
||||
list_add(&slave->list, &queue->all_slaves);
|
||||
queue->num_slaves++;
|
||||
slave->dev->flags |= IFF_SLAVE;
|
||||
|
||||
@@ -3462,7 +3462,7 @@ static int macsec_dev_init(struct net_device *dev)
|
||||
memcpy(dev->broadcast, real_dev->broadcast, dev->addr_len);
|
||||
|
||||
/* Get macsec's reference to real_dev */
|
||||
dev_hold_track(real_dev, &macsec->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(real_dev, &macsec->dev_tracker, GFP_KERNEL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -3710,7 +3710,7 @@ static void macsec_free_netdev(struct net_device *dev)
|
||||
free_percpu(macsec->secy.tx_sc.stats);
|
||||
|
||||
/* Get rid of the macsec's reference to real_dev */
|
||||
dev_put_track(macsec->real_dev, &macsec->dev_tracker);
|
||||
netdev_put(macsec->real_dev, &macsec->dev_tracker);
|
||||
}
|
||||
|
||||
static void macsec_setup(struct net_device *dev)
|
||||
|
||||
@@ -915,7 +915,7 @@ static int macvlan_init(struct net_device *dev)
|
||||
port->count += 1;
|
||||
|
||||
/* Get macvlan's reference to lowerdev */
|
||||
dev_hold_track(lowerdev, &vlan->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(lowerdev, &vlan->dev_tracker, GFP_KERNEL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1185,7 +1185,7 @@ static void macvlan_dev_free(struct net_device *dev)
|
||||
struct macvlan_dev *vlan = netdev_priv(dev);
|
||||
|
||||
/* Get rid of the macvlan's reference to lowerdev */
|
||||
dev_put_track(vlan->lowerdev, &vlan->dev_tracker);
|
||||
netdev_put(vlan->lowerdev, &vlan->dev_tracker);
|
||||
}
|
||||
|
||||
void macvlan_common_setup(struct net_device *dev)
|
||||
|
||||
@@ -721,7 +721,7 @@ restart:
|
||||
__netpoll_cleanup(&nt->np);
|
||||
|
||||
spin_lock_irqsave(&target_list_lock, flags);
|
||||
dev_put_track(nt->np.dev, &nt->np.dev_tracker);
|
||||
netdev_put(nt->np.dev, &nt->np.dev_tracker);
|
||||
nt->np.dev = NULL;
|
||||
nt->enabled = false;
|
||||
stopped = true;
|
||||
|
||||
@@ -814,8 +814,8 @@ static void vrf_rt6_release(struct net_device *dev, struct net_vrf *vrf)
|
||||
*/
|
||||
if (rt6) {
|
||||
dst = &rt6->dst;
|
||||
dev_replace_track(dst->dev, net->loopback_dev,
|
||||
&dst->dev_tracker, GFP_KERNEL);
|
||||
netdev_ref_replace(dst->dev, net->loopback_dev,
|
||||
&dst->dev_tracker, GFP_KERNEL);
|
||||
dst->dev = net->loopback_dev;
|
||||
dst_release(dst);
|
||||
}
|
||||
@@ -1061,8 +1061,8 @@ static void vrf_rtable_release(struct net_device *dev, struct net_vrf *vrf)
|
||||
*/
|
||||
if (rth) {
|
||||
dst = &rth->dst;
|
||||
dev_replace_track(dst->dev, net->loopback_dev,
|
||||
&dst->dev_tracker, GFP_KERNEL);
|
||||
netdev_ref_replace(dst->dev, net->loopback_dev,
|
||||
&dst->dev_tracker, GFP_KERNEL);
|
||||
dst->dev = net->loopback_dev;
|
||||
dst_release(dst);
|
||||
}
|
||||
|
||||
@@ -3981,8 +3981,8 @@ static inline void netdev_tracker_free(struct net_device *dev,
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void dev_hold_track(struct net_device *dev,
|
||||
netdevice_tracker *tracker, gfp_t gfp)
|
||||
static inline void netdev_hold(struct net_device *dev,
|
||||
netdevice_tracker *tracker, gfp_t gfp)
|
||||
{
|
||||
if (dev) {
|
||||
__dev_hold(dev);
|
||||
@@ -3990,8 +3990,8 @@ static inline void dev_hold_track(struct net_device *dev,
|
||||
}
|
||||
}
|
||||
|
||||
static inline void dev_put_track(struct net_device *dev,
|
||||
netdevice_tracker *tracker)
|
||||
static inline void netdev_put(struct net_device *dev,
|
||||
netdevice_tracker *tracker)
|
||||
{
|
||||
if (dev) {
|
||||
netdev_tracker_free(dev, tracker);
|
||||
@@ -4004,11 +4004,11 @@ static inline void dev_put_track(struct net_device *dev,
|
||||
* @dev: network device
|
||||
*
|
||||
* Hold reference to device to keep it from being freed.
|
||||
* Try using dev_hold_track() instead.
|
||||
* Try using netdev_hold() instead.
|
||||
*/
|
||||
static inline void dev_hold(struct net_device *dev)
|
||||
{
|
||||
dev_hold_track(dev, NULL, GFP_ATOMIC);
|
||||
netdev_hold(dev, NULL, GFP_ATOMIC);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -4016,17 +4016,17 @@ static inline void dev_hold(struct net_device *dev)
|
||||
* @dev: network device
|
||||
*
|
||||
* Release reference to device to allow it to be freed.
|
||||
* Try using dev_put_track() instead.
|
||||
* Try using netdev_put() instead.
|
||||
*/
|
||||
static inline void dev_put(struct net_device *dev)
|
||||
{
|
||||
dev_put_track(dev, NULL);
|
||||
netdev_put(dev, NULL);
|
||||
}
|
||||
|
||||
static inline void dev_replace_track(struct net_device *odev,
|
||||
struct net_device *ndev,
|
||||
netdevice_tracker *tracker,
|
||||
gfp_t gfp)
|
||||
static inline void netdev_ref_replace(struct net_device *odev,
|
||||
struct net_device *ndev,
|
||||
netdevice_tracker *tracker,
|
||||
gfp_t gfp)
|
||||
{
|
||||
if (odev)
|
||||
netdev_tracker_free(odev, tracker);
|
||||
|
||||
@@ -1923,7 +1923,7 @@ static inline void xfrm_dev_state_free(struct xfrm_state *x)
|
||||
if (dev->xfrmdev_ops->xdo_dev_state_free)
|
||||
dev->xfrmdev_ops->xdo_dev_state_free(x);
|
||||
xso->dev = NULL;
|
||||
dev_put_track(dev, &xso->dev_tracker);
|
||||
netdev_put(dev, &xso->dev_tracker);
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
||||
@@ -615,7 +615,7 @@ static int vlan_dev_init(struct net_device *dev)
|
||||
return -ENOMEM;
|
||||
|
||||
/* Get vlan's reference to real_dev */
|
||||
dev_hold_track(real_dev, &vlan->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(real_dev, &vlan->dev_tracker, GFP_KERNEL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -852,7 +852,7 @@ static void vlan_dev_free(struct net_device *dev)
|
||||
vlan->vlan_pcpu_stats = NULL;
|
||||
|
||||
/* Get rid of the vlan's reference to real_dev */
|
||||
dev_put_track(vlan->real_dev, &vlan->dev_tracker);
|
||||
netdev_put(vlan->real_dev, &vlan->dev_tracker);
|
||||
}
|
||||
|
||||
void vlan_setup(struct net_device *dev)
|
||||
|
||||
@@ -102,7 +102,8 @@ again:
|
||||
ax25_disconnect(s, ENETUNREACH);
|
||||
s->ax25_dev = NULL;
|
||||
if (sk->sk_socket) {
|
||||
dev_put_track(ax25_dev->dev, &ax25_dev->dev_tracker);
|
||||
netdev_put(ax25_dev->dev,
|
||||
&ax25_dev->dev_tracker);
|
||||
ax25_dev_put(ax25_dev);
|
||||
}
|
||||
ax25_cb_del(s);
|
||||
@@ -1065,7 +1066,7 @@ static int ax25_release(struct socket *sock)
|
||||
del_timer_sync(&ax25->t3timer);
|
||||
del_timer_sync(&ax25->idletimer);
|
||||
}
|
||||
dev_put_track(ax25_dev->dev, &ax25_dev->dev_tracker);
|
||||
netdev_put(ax25_dev->dev, &ax25_dev->dev_tracker);
|
||||
ax25_dev_put(ax25_dev);
|
||||
}
|
||||
|
||||
@@ -1146,7 +1147,7 @@ static int ax25_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
|
||||
|
||||
if (ax25_dev) {
|
||||
ax25_fillin_cb(ax25, ax25_dev);
|
||||
dev_hold_track(ax25_dev->dev, &ax25_dev->dev_tracker, GFP_ATOMIC);
|
||||
netdev_hold(ax25_dev->dev, &ax25_dev->dev_tracker, GFP_ATOMIC);
|
||||
}
|
||||
|
||||
done:
|
||||
|
||||
@@ -60,7 +60,7 @@ void ax25_dev_device_up(struct net_device *dev)
|
||||
refcount_set(&ax25_dev->refcount, 1);
|
||||
dev->ax25_ptr = ax25_dev;
|
||||
ax25_dev->dev = dev;
|
||||
dev_hold_track(dev, &ax25_dev->dev_tracker, GFP_ATOMIC);
|
||||
netdev_hold(dev, &ax25_dev->dev_tracker, GFP_ATOMIC);
|
||||
ax25_dev->forward = NULL;
|
||||
ax25_dev->device_up = true;
|
||||
|
||||
@@ -136,7 +136,7 @@ unlock_put:
|
||||
spin_unlock_bh(&ax25_dev_lock);
|
||||
ax25_dev_put(ax25_dev);
|
||||
dev->ax25_ptr = NULL;
|
||||
dev_put_track(dev, &ax25_dev->dev_tracker);
|
||||
netdev_put(dev, &ax25_dev->dev_tracker);
|
||||
ax25_dev_put(ax25_dev);
|
||||
}
|
||||
|
||||
@@ -205,7 +205,7 @@ void __exit ax25_dev_free(void)
|
||||
ax25_dev = ax25_dev_list;
|
||||
while (ax25_dev != NULL) {
|
||||
s = ax25_dev;
|
||||
dev_put_track(ax25_dev->dev, &ax25_dev->dev_tracker);
|
||||
netdev_put(ax25_dev->dev, &ax25_dev->dev_tracker);
|
||||
ax25_dev = ax25_dev->next;
|
||||
kfree(s);
|
||||
}
|
||||
|
||||
@@ -274,7 +274,7 @@ static void destroy_nbp(struct net_bridge_port *p)
|
||||
|
||||
p->br = NULL;
|
||||
p->dev = NULL;
|
||||
dev_put_track(dev, &p->dev_tracker);
|
||||
netdev_put(dev, &p->dev_tracker);
|
||||
|
||||
kobject_put(&p->kobj);
|
||||
}
|
||||
@@ -423,7 +423,7 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br,
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
p->br = br;
|
||||
dev_hold_track(dev, &p->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(dev, &p->dev_tracker, GFP_KERNEL);
|
||||
p->dev = dev;
|
||||
p->path_cost = port_cost(dev);
|
||||
p->priority = 0x8000 >> BR_PORT_BITS;
|
||||
@@ -434,7 +434,7 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br,
|
||||
br_stp_port_timer_init(p);
|
||||
err = br_multicast_add_port(p);
|
||||
if (err) {
|
||||
dev_put_track(dev, &p->dev_tracker);
|
||||
netdev_put(dev, &p->dev_tracker);
|
||||
kfree(p);
|
||||
p = ERR_PTR(err);
|
||||
}
|
||||
@@ -615,7 +615,7 @@ int br_add_if(struct net_bridge *br, struct net_device *dev,
|
||||
err = dev_set_allmulti(dev, 1);
|
||||
if (err) {
|
||||
br_multicast_del_port(p);
|
||||
dev_put_track(dev, &p->dev_tracker);
|
||||
netdev_put(dev, &p->dev_tracker);
|
||||
kfree(p); /* kobject not yet init'd, manually free */
|
||||
goto err1;
|
||||
}
|
||||
@@ -725,7 +725,7 @@ err3:
|
||||
sysfs_remove_link(br->ifobj, p->dev->name);
|
||||
err2:
|
||||
br_multicast_del_port(p);
|
||||
dev_put_track(dev, &p->dev_tracker);
|
||||
netdev_put(dev, &p->dev_tracker);
|
||||
kobject_put(&p->kobj);
|
||||
dev_set_allmulti(dev, -1);
|
||||
err1:
|
||||
|
||||
@@ -7463,7 +7463,7 @@ static int __netdev_adjacent_dev_insert(struct net_device *dev,
|
||||
adj->ref_nr = 1;
|
||||
adj->private = private;
|
||||
adj->ignore = false;
|
||||
dev_hold_track(adj_dev, &adj->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(adj_dev, &adj->dev_tracker, GFP_KERNEL);
|
||||
|
||||
pr_debug("Insert adjacency: dev %s adj_dev %s adj->ref_nr %d; dev_hold on %s\n",
|
||||
dev->name, adj_dev->name, adj->ref_nr, adj_dev->name);
|
||||
@@ -7492,7 +7492,7 @@ remove_symlinks:
|
||||
if (netdev_adjacent_is_neigh_list(dev, adj_dev, dev_list))
|
||||
netdev_adjacent_sysfs_del(dev, adj_dev->name, dev_list);
|
||||
free_adj:
|
||||
dev_put_track(adj_dev, &adj->dev_tracker);
|
||||
netdev_put(adj_dev, &adj->dev_tracker);
|
||||
kfree(adj);
|
||||
|
||||
return ret;
|
||||
@@ -7534,7 +7534,7 @@ static void __netdev_adjacent_dev_remove(struct net_device *dev,
|
||||
list_del_rcu(&adj->list);
|
||||
pr_debug("adjacency: dev_put for %s, because link removed from %s to %s\n",
|
||||
adj_dev->name, dev->name, adj_dev->name);
|
||||
dev_put_track(adj_dev, &adj->dev_tracker);
|
||||
netdev_put(adj_dev, &adj->dev_tracker);
|
||||
kfree_rcu(adj, rcu);
|
||||
}
|
||||
|
||||
@@ -10062,7 +10062,7 @@ int register_netdevice(struct net_device *dev)
|
||||
|
||||
dev_init_scheduler(dev);
|
||||
|
||||
dev_hold_track(dev, &dev->dev_registered_tracker, GFP_KERNEL);
|
||||
netdev_hold(dev, &dev->dev_registered_tracker, GFP_KERNEL);
|
||||
list_netdevice(dev);
|
||||
|
||||
add_device_randomness(dev->dev_addr, dev->addr_len);
|
||||
@@ -10868,7 +10868,7 @@ void unregister_netdevice_many(struct list_head *head)
|
||||
synchronize_net();
|
||||
|
||||
list_for_each_entry(dev, head, unreg_list) {
|
||||
dev_put_track(dev, &dev->dev_registered_tracker);
|
||||
netdev_put(dev, &dev->dev_registered_tracker);
|
||||
net_set_todo(dev);
|
||||
}
|
||||
|
||||
|
||||
@@ -384,10 +384,10 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, void __user *data,
|
||||
return -ENODEV;
|
||||
if (!netif_is_bridge_master(dev))
|
||||
return -EOPNOTSUPP;
|
||||
dev_hold_track(dev, &dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(dev, &dev_tracker, GFP_KERNEL);
|
||||
rtnl_unlock();
|
||||
err = br_ioctl_call(net, netdev_priv(dev), cmd, ifr, NULL);
|
||||
dev_put_track(dev, &dev_tracker);
|
||||
netdev_put(dev, &dev_tracker);
|
||||
rtnl_lock();
|
||||
return err;
|
||||
|
||||
|
||||
@@ -864,7 +864,8 @@ net_dm_hw_metadata_copy(const struct devlink_trap_metadata *metadata)
|
||||
}
|
||||
|
||||
hw_metadata->input_dev = metadata->input_dev;
|
||||
dev_hold_track(hw_metadata->input_dev, &hw_metadata->dev_tracker, GFP_ATOMIC);
|
||||
netdev_hold(hw_metadata->input_dev, &hw_metadata->dev_tracker,
|
||||
GFP_ATOMIC);
|
||||
|
||||
return hw_metadata;
|
||||
|
||||
@@ -880,7 +881,7 @@ free_hw_metadata:
|
||||
static void
|
||||
net_dm_hw_metadata_free(struct devlink_trap_metadata *hw_metadata)
|
||||
{
|
||||
dev_put_track(hw_metadata->input_dev, &hw_metadata->dev_tracker);
|
||||
netdev_put(hw_metadata->input_dev, &hw_metadata->dev_tracker);
|
||||
kfree(hw_metadata->fa_cookie);
|
||||
kfree(hw_metadata->trap_name);
|
||||
kfree(hw_metadata->trap_group_name);
|
||||
|
||||
@@ -49,7 +49,7 @@ void dst_init(struct dst_entry *dst, struct dst_ops *ops,
|
||||
unsigned short flags)
|
||||
{
|
||||
dst->dev = dev;
|
||||
dev_hold_track(dev, &dst->dev_tracker, GFP_ATOMIC);
|
||||
netdev_hold(dev, &dst->dev_tracker, GFP_ATOMIC);
|
||||
dst->ops = ops;
|
||||
dst_init_metrics(dst, dst_default_metrics.metrics, true);
|
||||
dst->expires = 0UL;
|
||||
@@ -117,7 +117,7 @@ struct dst_entry *dst_destroy(struct dst_entry * dst)
|
||||
|
||||
if (dst->ops->destroy)
|
||||
dst->ops->destroy(dst);
|
||||
dev_put_track(dst->dev, &dst->dev_tracker);
|
||||
netdev_put(dst->dev, &dst->dev_tracker);
|
||||
|
||||
lwtstate_put(dst->lwtstate);
|
||||
|
||||
@@ -159,8 +159,8 @@ void dst_dev_put(struct dst_entry *dst)
|
||||
dst->input = dst_discard;
|
||||
dst->output = dst_discard_out;
|
||||
dst->dev = blackhole_netdev;
|
||||
dev_replace_track(dev, blackhole_netdev, &dst->dev_tracker,
|
||||
GFP_ATOMIC);
|
||||
netdev_ref_replace(dev, blackhole_netdev, &dst->dev_tracker,
|
||||
GFP_ATOMIC);
|
||||
}
|
||||
EXPORT_SYMBOL(dst_dev_put);
|
||||
|
||||
|
||||
@@ -252,7 +252,7 @@ struct failover *failover_register(struct net_device *dev,
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
rcu_assign_pointer(failover->ops, ops);
|
||||
dev_hold_track(dev, &failover->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(dev, &failover->dev_tracker, GFP_KERNEL);
|
||||
dev->priv_flags |= IFF_FAILOVER;
|
||||
rcu_assign_pointer(failover->failover_dev, dev);
|
||||
|
||||
@@ -285,7 +285,7 @@ void failover_unregister(struct failover *failover)
|
||||
failover_dev->name);
|
||||
|
||||
failover_dev->priv_flags &= ~IFF_FAILOVER;
|
||||
dev_put_track(failover_dev, &failover->dev_tracker);
|
||||
netdev_put(failover_dev, &failover->dev_tracker);
|
||||
|
||||
spin_lock(&failover_lock);
|
||||
list_del(&failover->list);
|
||||
|
||||
@@ -110,7 +110,7 @@ static void linkwatch_add_event(struct net_device *dev)
|
||||
spin_lock_irqsave(&lweventlist_lock, flags);
|
||||
if (list_empty(&dev->link_watch_list)) {
|
||||
list_add_tail(&dev->link_watch_list, &lweventlist);
|
||||
dev_hold_track(dev, &dev->linkwatch_dev_tracker, GFP_ATOMIC);
|
||||
netdev_hold(dev, &dev->linkwatch_dev_tracker, GFP_ATOMIC);
|
||||
}
|
||||
spin_unlock_irqrestore(&lweventlist_lock, flags);
|
||||
}
|
||||
|
||||
@@ -624,7 +624,7 @@ ___neigh_create(struct neigh_table *tbl, const void *pkey,
|
||||
|
||||
memcpy(n->primary_key, pkey, key_len);
|
||||
n->dev = dev;
|
||||
dev_hold_track(dev, &n->dev_tracker, GFP_ATOMIC);
|
||||
netdev_hold(dev, &n->dev_tracker, GFP_ATOMIC);
|
||||
|
||||
/* Protocol specific setup. */
|
||||
if (tbl->constructor && (error = tbl->constructor(n)) < 0) {
|
||||
@@ -770,10 +770,10 @@ struct pneigh_entry * pneigh_lookup(struct neigh_table *tbl,
|
||||
write_pnet(&n->net, net);
|
||||
memcpy(n->key, pkey, key_len);
|
||||
n->dev = dev;
|
||||
dev_hold_track(dev, &n->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(dev, &n->dev_tracker, GFP_KERNEL);
|
||||
|
||||
if (tbl->pconstructor && tbl->pconstructor(n)) {
|
||||
dev_put_track(dev, &n->dev_tracker);
|
||||
netdev_put(dev, &n->dev_tracker);
|
||||
kfree(n);
|
||||
n = NULL;
|
||||
goto out;
|
||||
@@ -805,7 +805,7 @@ int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *pkey,
|
||||
write_unlock_bh(&tbl->lock);
|
||||
if (tbl->pdestructor)
|
||||
tbl->pdestructor(n);
|
||||
dev_put_track(n->dev, &n->dev_tracker);
|
||||
netdev_put(n->dev, &n->dev_tracker);
|
||||
kfree(n);
|
||||
return 0;
|
||||
}
|
||||
@@ -838,7 +838,7 @@ static int pneigh_ifdown_and_unlock(struct neigh_table *tbl,
|
||||
n->next = NULL;
|
||||
if (tbl->pdestructor)
|
||||
tbl->pdestructor(n);
|
||||
dev_put_track(n->dev, &n->dev_tracker);
|
||||
netdev_put(n->dev, &n->dev_tracker);
|
||||
kfree(n);
|
||||
}
|
||||
return -ENOENT;
|
||||
@@ -879,7 +879,7 @@ void neigh_destroy(struct neighbour *neigh)
|
||||
if (dev->netdev_ops->ndo_neigh_destroy)
|
||||
dev->netdev_ops->ndo_neigh_destroy(dev, neigh);
|
||||
|
||||
dev_put_track(dev, &neigh->dev_tracker);
|
||||
netdev_put(dev, &neigh->dev_tracker);
|
||||
neigh_parms_put(neigh->parms);
|
||||
|
||||
neigh_dbg(2, "neigh %p is destroyed\n", neigh);
|
||||
@@ -1671,13 +1671,13 @@ struct neigh_parms *neigh_parms_alloc(struct net_device *dev,
|
||||
refcount_set(&p->refcnt, 1);
|
||||
p->reachable_time =
|
||||
neigh_rand_reach_time(NEIGH_VAR(p, BASE_REACHABLE_TIME));
|
||||
dev_hold_track(dev, &p->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(dev, &p->dev_tracker, GFP_KERNEL);
|
||||
p->dev = dev;
|
||||
write_pnet(&p->net, net);
|
||||
p->sysctl_table = NULL;
|
||||
|
||||
if (ops->ndo_neigh_setup && ops->ndo_neigh_setup(dev, p)) {
|
||||
dev_put_track(dev, &p->dev_tracker);
|
||||
netdev_put(dev, &p->dev_tracker);
|
||||
kfree(p);
|
||||
return NULL;
|
||||
}
|
||||
@@ -1708,7 +1708,7 @@ void neigh_parms_release(struct neigh_table *tbl, struct neigh_parms *parms)
|
||||
list_del(&parms->list);
|
||||
parms->dead = 1;
|
||||
write_unlock_bh(&tbl->lock);
|
||||
dev_put_track(parms->dev, &parms->dev_tracker);
|
||||
netdev_put(parms->dev, &parms->dev_tracker);
|
||||
call_rcu(&parms->rcu_head, neigh_rcu_free_parms);
|
||||
}
|
||||
EXPORT_SYMBOL(neigh_parms_release);
|
||||
|
||||
@@ -1016,7 +1016,7 @@ static void rx_queue_release(struct kobject *kobj)
|
||||
#endif
|
||||
|
||||
memset(kobj, 0, sizeof(*kobj));
|
||||
dev_put_track(queue->dev, &queue->dev_tracker);
|
||||
netdev_put(queue->dev, &queue->dev_tracker);
|
||||
}
|
||||
|
||||
static const void *rx_queue_namespace(struct kobject *kobj)
|
||||
@@ -1056,7 +1056,7 @@ static int rx_queue_add_kobject(struct net_device *dev, int index)
|
||||
/* Kobject_put later will trigger rx_queue_release call which
|
||||
* decreases dev refcount: Take that reference here
|
||||
*/
|
||||
dev_hold_track(queue->dev, &queue->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(queue->dev, &queue->dev_tracker, GFP_KERNEL);
|
||||
|
||||
kobj->kset = dev->queues_kset;
|
||||
error = kobject_init_and_add(kobj, &rx_queue_ktype, NULL,
|
||||
@@ -1619,7 +1619,7 @@ static void netdev_queue_release(struct kobject *kobj)
|
||||
struct netdev_queue *queue = to_netdev_queue(kobj);
|
||||
|
||||
memset(kobj, 0, sizeof(*kobj));
|
||||
dev_put_track(queue->dev, &queue->dev_tracker);
|
||||
netdev_put(queue->dev, &queue->dev_tracker);
|
||||
}
|
||||
|
||||
static const void *netdev_queue_namespace(struct kobject *kobj)
|
||||
@@ -1659,7 +1659,7 @@ static int netdev_queue_add_kobject(struct net_device *dev, int index)
|
||||
/* Kobject_put later will trigger netdev_queue_release call
|
||||
* which decreases dev refcount: Take that reference here
|
||||
*/
|
||||
dev_hold_track(queue->dev, &queue->dev_tracker, GFP_KERNEL);
|
||||
netdev_hold(queue->dev, &queue->dev_tracker, GFP_KERNEL);
|
||||
|
||||
kobj->kset = dev->queues_kset;
|
||||
error = kobject_init_and_add(kobj, &netdev_queue_ktype, NULL,
|
||||
|
||||
@@ -853,7 +853,7 @@ void netpoll_cleanup(struct netpoll *np)
|
||||
if (!np->dev)
|
||||
goto out;
|
||||
__netpoll_cleanup(np);
|
||||
dev_put_track(np->dev, &np->dev_tracker);
|
||||
netdev_put(np->dev, &np->dev_tracker);
|
||||
np->dev = NULL;
|
||||
out:
|
||||
rtnl_unlock();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user