diff options
Diffstat (limited to 'net/core/pktgen.c')
| -rw-r--r-- | net/core/pktgen.c | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/net/core/pktgen.c b/net/core/pktgen.c index a3d74e2704c4..560a5e712dc3 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -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;  	} |