[NET]: Inline net_device_stats
Network drivers which keep stats allocate their own stats structure then write a get_stats() function to return them. It would be nice if this were done by default. 1) Add a new "stats" field to "struct net_device". 2) Add a new feature field to say "this driver uses the internal one" 3) Have a default "get_stats" which returns NULL if that feature not set. 4) Change callers to check result of get_stats call for NULL, not if ->get_stats is set. This should not break backwards compatibility with older drivers, yet allow modern drivers to shed some boilerplate code. Lightly tested: works for a modified lguest network driver. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f859581519
commit
c45d286e72
@@ -108,10 +108,10 @@ static void appldata_get_net_sum_data(void *data)
|
||||
collisions = 0;
|
||||
read_lock(&dev_base_lock);
|
||||
for (dev = dev_base; dev != NULL; dev = dev->next) {
|
||||
if (dev->get_stats == NULL) {
|
||||
stats = dev->get_stats(dev);
|
||||
if (stats == NULL) {
|
||||
continue;
|
||||
}
|
||||
stats = dev->get_stats(dev);
|
||||
rx_packets += stats->rx_packets;
|
||||
tx_packets += stats->tx_packets;
|
||||
rx_bytes += stats->rx_bytes;
|
||||
|
Reference in New Issue
Block a user