summaryrefslogtreecommitdiffstats
path: root/arch/s390/appldata/appldata_net_sum.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2007-03-28 14:29:08 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-25 22:28:26 -0700
commitc45d286e72dd72c0229dc9e2849743ba427fee84 (patch)
tree1fb22a5e71c89043671380087def5bc419a37886 /arch/s390/appldata/appldata_net_sum.c
parentf85958151900f9d30fa5ff941b0ce71eaa45a7de (diff)
downloadlinux-c45d286e72dd72c0229dc9e2849743ba427fee84.tar.gz
linux-c45d286e72dd72c0229dc9e2849743ba427fee84.tar.bz2
linux-c45d286e72dd72c0229dc9e2849743ba427fee84.zip
[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>
Diffstat (limited to 'arch/s390/appldata/appldata_net_sum.c')
-rw-r--r--arch/s390/appldata/appldata_net_sum.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/appldata/appldata_net_sum.c b/arch/s390/appldata/appldata_net_sum.c
index f64b8c867ae2..516b3ac9a9b5 100644
--- a/arch/s390/appldata/appldata_net_sum.c
+++ b/arch/s390/appldata/appldata_net_sum.c
@@ -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;