]> git.baikalelectronics.ru Git - kernel.git/commit
net: systemport: Fix 64-bit statistics dependency
authorFlorian Fainelli <f.fainelli@gmail.com>
Mon, 18 Sep 2017 23:31:30 +0000 (16:31 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 19 Sep 2017 03:58:45 +0000 (20:58 -0700)
commitb2cc1a305f8c1cb2c1d64978e654da4fa55a4a4e
tree84fe6a2b4cdaa6f08bad6f3c45cde019eb4db779
parentf895359b893b5c200e4545b6a51e4468e396b510
net: systemport: Fix 64-bit statistics dependency

There are several problems with commit 4e4c0edceafa ("net: systemport:
Support 64bit statistics", first one got fixed in e87320eee30e ("net:
systemport: Fix 64-bit stats deadlock").

The second problem is that this specific code updates the
stats64.tx_{packets,bytes} from ndo_get_stats64() and that is what we
are returning to ethtool -S. If we are not running a tool that involves
calling ndo_get_stats64(), then we won't get updated ethtool stats.

The solution to this is to update the stats from both call sites,
factoring that into a specific function, While at it, don't just check
the sizeof() but also the type of the statistics in order to use the
64-bit stats seqlock.

Fixes: 4e4c0edceafa ("net: systemport: Support 64bit statistics")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bcmsysport.c