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>
Showing
- drivers/net/bonding/bond_main.c 7 additions, 6 deletionsdrivers/net/bonding/bond_main.c
- include/linux/if_link.h 2 additions, 1 deletioninclude/linux/if_link.h
- include/linux/netdevice.h 54 additions, 37 deletionsinclude/linux/netdevice.h
- net/8021q/vlanproc.c 7 additions, 6 deletionsnet/8021q/vlanproc.c
- net/core/dev.c 11 additions, 8 deletionsnet/core/dev.c
- net/core/net-sysfs.c 6 additions, 6 deletionsnet/core/net-sysfs.c
- net/core/rtnetlink.c 3 additions, 3 deletionsnet/core/rtnetlink.c
Loading
Please register or sign in to comment