net: Enable 64-bit net device statistics on 32-bit architectures
authorBen Hutchings <bhutchings@solarflare.com>
Tue, 8 Jun 2010 07:19:54 +0000 (07:19 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 12 Jun 2010 22:51:22 +0000 (15:51 -0700)
commitbe1f3c2c027cc5ad735df6a45a542ed1db7ec48b
treec97815a7cf25ea62e8f3a6b3597cfa8957f40b81
parentd19b51499967baddf4f9f12a0067146c2554527a
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>
drivers/net/bonding/bond_main.c
include/linux/if_link.h
include/linux/netdevice.h
net/8021q/vlanproc.c
net/core/dev.c
net/core/net-sysfs.c
net/core/rtnetlink.c