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

net: failover: add net device refcount tracker

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Eric Dumazet and committed by
Jakub Kicinski
095e200f 63f13937

+3 -2
+1
include/net/failover.h
··· 25 25 struct failover { 26 26 struct list_head list; 27 27 struct net_device __rcu *failover_dev; 28 + netdevice_tracker dev_tracker; 28 29 struct failover_ops __rcu *ops; 29 30 }; 30 31
+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(dev); 255 + dev_hold_track(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(failover_dev); 288 + dev_put_track(failover_dev, &failover->dev_tracker); 289 289 290 290 spin_lock(&failover_lock); 291 291 list_del(&failover->list);