1
linux/net/8021q
Ben Hutchings 3cfde79c6c net: Get rid of rtnl_link_stats64 / net_device_stats union
In commit be1f3c2c02 "net: Enable 64-bit
net device statistics on 32-bit architectures" I redefined struct
net_device_stats so that it could be used in a union with struct
rtnl_link_stats64, avoiding the need for explicit copying or
conversion between the two.  However, this is unsafe because there is
no locking required and no lock consistently held around calls to
dev_get_stats() and use of the statistics structure it returns.

In commit 28172739f0 "net: fix 64 bit
counters on 32 bit arches" Eric Dumazet dealt with that problem by
requiring callers of dev_get_stats() to provide storage for the
result.  This means that the net_device::stats64 field and the padding
in struct net_device_stats are now redundant, so remove them.

Update the comment on net_device_ops::ndo_get_stats64 to reflect its
new usage.

Change dev_txq_stats_fold() to use struct rtnl_link_stats64, since
that is what all its callers are really using and it is no longer
going to be compatible with struct net_device_stats.

Eric Dumazet suggested the separate function for the structure
conversion.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-07-09 17:41:56 -07:00
..
Kconfig
Makefile
vlan_core.c vlan: 64 bit rx counters 2010-06-28 23:24:31 -07:00
vlan_dev.c net: Get rid of rtnl_link_stats64 / net_device_stats union 2010-07-09 17:41:56 -07:00
vlan_gvrp.c
vlan_netlink.c vlan: support "loose binding" to the underlying network device 2009-11-26 16:00:36 -08:00
vlan.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-04-11 14:53:53 -07:00
vlan.h vlan: 64 bit rx counters 2010-06-28 23:24:31 -07:00
vlanproc.c net: fix 64 bit counters on 32 bit arches 2010-07-07 14:58:56 -07:00
vlanproc.h