Skip to content

Commit

Permalink
net: Fix rxq ref counting
Browse files Browse the repository at this point in the history
The rx->count reference is used to track reference counts to the
number of rx-queue kobjects created for the device.  This patch
eliminates initialization of the counter in netif_alloc_rx_queues
and instead increments the counter each time a kobject is created.
This is now symmetric with the decrement that is done when an object is
released.

Signed-off-by: Tom Herbert <therbert@google.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Tom Herbert authored and David S. Miller committed Oct 8, 2010
1 parent a131d82 commit 4315d83
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 1 deletion.
1 change: 0 additions & 1 deletion net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -5024,7 +5024,6 @@ static int netif_alloc_rx_queues(struct net_device *dev)
return -ENOMEM;
}
dev->_rx = rx;
atomic_set(&rx->count, count);

/*
* Set a pointer to first element in the array which holds the
Expand Down
2 changes: 2 additions & 0 deletions net/core/net-sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -726,6 +726,7 @@ static struct kobj_type rx_queue_ktype = {
static int rx_queue_add_kobject(struct net_device *net, int index)
{
struct netdev_rx_queue *queue = net->_rx + index;
struct netdev_rx_queue *first = queue->first;
struct kobject *kobj = &queue->kobj;
int error = 0;

Expand All @@ -738,6 +739,7 @@ static int rx_queue_add_kobject(struct net_device *net, int index)
}

kobject_uevent(kobj, KOBJ_ADD);
atomic_inc(&first->count);

return error;
}
Expand Down

0 comments on commit 4315d83

Please sign in to comment.