mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
net: add net device refcount tracker to struct netdev_rx_queue
This helps debugging net device refcount leaks. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
4d92b95ff2
commit
80e8921b2b
@ -741,6 +741,8 @@ struct netdev_rx_queue {
|
||||
#endif
|
||||
struct kobject kobj;
|
||||
struct net_device *dev;
|
||||
netdevice_tracker dev_tracker;
|
||||
|
||||
#ifdef CONFIG_XDP_SOCKETS
|
||||
struct xsk_buff_pool *pool;
|
||||
#endif
|
||||
|
@ -1004,7 +1004,7 @@ static void rx_queue_release(struct kobject *kobj)
|
||||
#endif
|
||||
|
||||
memset(kobj, 0, sizeof(*kobj));
|
||||
dev_put(queue->dev);
|
||||
dev_put_track(queue->dev, &queue->dev_tracker);
|
||||
}
|
||||
|
||||
static const void *rx_queue_namespace(struct kobject *kobj)
|
||||
@ -1044,7 +1044,7 @@ static int rx_queue_add_kobject(struct net_device *dev, int index)
|
||||
/* Kobject_put later will trigger rx_queue_release call which
|
||||
* decreases dev refcount: Take that reference here
|
||||
*/
|
||||
dev_hold(queue->dev);
|
||||
dev_hold_track(queue->dev, &queue->dev_tracker, GFP_KERNEL);
|
||||
|
||||
kobj->kset = dev->queues_kset;
|
||||
error = kobject_init_and_add(kobj, &rx_queue_ktype, NULL,
|
||||
|
Loading…
Reference in New Issue
Block a user