diff options
Diffstat (limited to 'net/core/net-sysfs.c')
| -rw-r--r-- | net/core/net-sysfs.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index 5c4624298996..4c826b8bf9b1 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -919,14 +919,17 @@ static int rx_queue_add_kobject(struct net_device *dev, int index)  	struct kobject *kobj = &queue->kobj;  	int error = 0; +	/* Kobject_put later will trigger rx_queue_release call which +	 * decreases dev refcount: Take that reference here +	 */ +	dev_hold(queue->dev); +  	kobj->kset = dev->queues_kset;  	error = kobject_init_and_add(kobj, &rx_queue_ktype, NULL,  				     "rx-%u", index);  	if (error)  		goto err; -	dev_hold(queue->dev); -  	if (dev->sysfs_rx_queue_group) {  		error = sysfs_create_group(kobj, dev->sysfs_rx_queue_group);  		if (error)  | 
