pktgen add net device refcount tracker
Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
615d069dcf
commit
035f1f2b96
|
@ -410,6 +410,7 @@ struct pktgen_dev {
|
|||
* device name (not when the inject is
|
||||
* started as it used to do.)
|
||||
*/
|
||||
netdevice_tracker dev_tracker;
|
||||
char odevname[32];
|
||||
struct flow_state *flows;
|
||||
unsigned int cflows; /* Concurrent flows (config) */
|
||||
|
@ -2099,7 +2100,7 @@ static int pktgen_setup_dev(const struct pktgen_net *pn,
|
|||
|
||||
/* Clean old setups */
|
||||
if (pkt_dev->odev) {
|
||||
dev_put(pkt_dev->odev);
|
||||
dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker);
|
||||
pkt_dev->odev = NULL;
|
||||
}
|
||||
|
||||
|
@ -2117,6 +2118,7 @@ static int pktgen_setup_dev(const struct pktgen_net *pn,
|
|||
err = -ENETDOWN;
|
||||
} else {
|
||||
pkt_dev->odev = odev;
|
||||
netdev_tracker_alloc(odev, &pkt_dev->dev_tracker, GFP_KERNEL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -3805,7 +3807,7 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
|
|||
|
||||
return add_dev_to_thread(t, pkt_dev);
|
||||
out2:
|
||||
dev_put(pkt_dev->odev);
|
||||
dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker);
|
||||
out1:
|
||||
#ifdef CONFIG_XFRM
|
||||
free_SAs(pkt_dev);
|
||||
|
@ -3899,7 +3901,7 @@ static int pktgen_remove_device(struct pktgen_thread *t,
|
|||
/* Dis-associate from the interface */
|
||||
|
||||
if (pkt_dev->odev) {
|
||||
dev_put(pkt_dev->odev);
|
||||
dev_put_track(pkt_dev->odev, &pkt_dev->dev_tracker);
|
||||
pkt_dev->odev = NULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue