summaryrefslogtreecommitdiff
path: root/include/linux/if_link.h
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2010-06-08 11:19:54 +0400
committerDavid S. Miller <davem@davemloft.net>2010-06-13 02:51:22 +0400
commitbe1f3c2c027cc5ad735df6a45a542ed1db7ec48b (patch)
treec97815a7cf25ea62e8f3a6b3597cfa8957f40b81 /include/linux/if_link.h
parentd19b51499967baddf4f9f12a0067146c2554527a (diff)
downloadlinux-be1f3c2c027cc5ad735df6a45a542ed1db7ec48b.tar.xz
net: Enable 64-bit net device statistics on 32-bit architectures
Use struct rtnl_link_stats64 as the statistics structure. On 32-bit architectures, insert 32 bits of padding after/before each field of struct net_device_stats to make its layout compatible with struct rtnl_link_stats64. Add an anonymous union in net_device; move stats into the union and add struct rtnl_link_stats64 stats64. Add net_device_ops::ndo_get_stats64, implementations of which will return a pointer to struct rtnl_link_stats64. Drivers that implement this operation must not update the structure asynchronously. Change dev_get_stats() to call ndo_get_stats64 if available, and to return a pointer to struct rtnl_link_stats64. Change callers of dev_get_stats() accordingly. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/if_link.h')
-rw-r--r--include/linux/if_link.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index 85c812db5a3f..7fcad2e1be3d 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -4,7 +4,7 @@
#include <linux/types.h>
#include <linux/netlink.h>
-/* The struct should be in sync with struct net_device_stats */
+/* This struct should be in sync with struct rtnl_link_stats64 */
struct rtnl_link_stats {
__u32 rx_packets; /* total packets received */
__u32 tx_packets; /* total packets transmitted */
@@ -37,6 +37,7 @@ struct rtnl_link_stats {
__u32 tx_compressed;
};
+/* The main device statistics structure */
struct rtnl_link_stats64 {
__u64 rx_packets; /* total packets received */
__u64 tx_packets; /* total packets transmitted */