diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2007-03-28 17:29:08 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:28:26 -0400 |
commit | c45d286e72dd72c0229dc9e2849743ba427fee84 (patch) | |
tree | 1fb22a5e71c89043671380087def5bc419a37886 /arch/s390 | |
parent | f85958151900f9d30fa5ff941b0ce71eaa45a7de (diff) |
[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')
-rw-r--r-- | arch/s390/appldata/appldata_net_sum.c | 4 |
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) | |||
108 | collisions = 0; | 108 | collisions = 0; |
109 | read_lock(&dev_base_lock); | 109 | read_lock(&dev_base_lock); |
110 | for (dev = dev_base; dev != NULL; dev = dev->next) { | 110 | for (dev = dev_base; dev != NULL; dev = dev->next) { |
111 | if (dev->get_stats == NULL) { | 111 | stats = dev->get_stats(dev); |
112 | if (stats == NULL) { | ||
112 | continue; | 113 | continue; |
113 | } | 114 | } |
114 | stats = dev->get_stats(dev); | ||
115 | rx_packets += stats->rx_packets; | 115 | rx_packets += stats->rx_packets; |
116 | tx_packets += stats->tx_packets; | 116 | tx_packets += stats->tx_packets; |
117 | rx_bytes += stats->rx_bytes; | 117 | rx_bytes += stats->rx_bytes; |