aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2007-03-28 17:29:08 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:28:26 -0400
commitc45d286e72dd72c0229dc9e2849743ba427fee84 (patch)
tree1fb22a5e71c89043671380087def5bc419a37886 /include/linux
parentf85958151900f9d30fa5ff941b0ce71eaa45a7de (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 'include/linux')
-rw-r--r--include/linux/netdevice.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 1a528548cd1d..71fc8ff4888b 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -323,6 +323,7 @@ struct net_device
323#define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */ 323#define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */
324#define NETIF_F_GSO 2048 /* Enable software GSO. */ 324#define NETIF_F_GSO 2048 /* Enable software GSO. */
325#define NETIF_F_LLTX 4096 /* LockLess TX */ 325#define NETIF_F_LLTX 4096 /* LockLess TX */
326#define NETIF_F_INTERNAL_STATS 8192 /* Use stats structure in net_device */
326 327
327 /* Segmentation offload features */ 328 /* Segmentation offload features */
328#define NETIF_F_GSO_SHIFT 16 329#define NETIF_F_GSO_SHIFT 16
@@ -347,6 +348,7 @@ struct net_device
347 348
348 349
349 struct net_device_stats* (*get_stats)(struct net_device *dev); 350 struct net_device_stats* (*get_stats)(struct net_device *dev);
351 struct net_device_stats stats;
350 352
351 /* List of functions to handle Wireless Extensions (instead of ioctl). 353 /* List of functions to handle Wireless Extensions (instead of ioctl).
352 * See <net/iw_handler.h> for details. Jean II */ 354 * See <net/iw_handler.h> for details. Jean II */