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

netpoll: add net device refcount tracker to struct netpoll

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
5fa5ae60 42120a86

+4 -3
+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(nt->np.dev); 724 + dev_put_track(nt->np.dev, &nt->np.dev_tracker); 725 725 nt->np.dev = NULL; 726 726 nt->enabled = false; 727 727 stopped = true;
+1
include/linux/netpoll.h
··· 24 24 25 25 struct netpoll { 26 26 struct net_device *dev; 27 + netdevice_tracker dev_tracker; 27 28 char dev_name[IFNAMSIZ]; 28 29 const char *name; 29 30
+2 -2
net/core/netpoll.c
··· 776 776 err = __netpoll_setup(np, ndev); 777 777 if (err) 778 778 goto put; 779 - 779 + netdev_tracker_alloc(ndev, &np->dev_tracker, GFP_KERNEL); 780 780 rtnl_unlock(); 781 781 return 0; 782 782 ··· 853 853 if (!np->dev) 854 854 goto out; 855 855 __netpoll_cleanup(np); 856 - dev_put(np->dev); 856 + dev_put_track(np->dev, &np->dev_tracker); 857 857 np->dev = NULL; 858 858 out: 859 859 rtnl_unlock();