aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/act_mirred.c
diff options
context:
space:
mode:
authorPaul Blakey <paulb@mellanox.com>2016-10-19 17:42:39 +0300
committerDavid S. Miller <davem@davemloft.net>2016-10-20 11:14:24 -0400
commit5712bf9c5c30ade3204016147d7b04bece6952d9 (patch)
tree914614d0fc2a612104cd30f298d3036a739e6abe /net/sched/act_mirred.c
parentmlxsw: pci: Fix reset wait for SwitchX2 (diff)
downloadlinux-dev-5712bf9c5c30ade3204016147d7b04bece6952d9.tar.xz
linux-dev-5712bf9c5c30ade3204016147d7b04bece6952d9.zip
net/sched: act_mirred: Use passed lastuse argument
stats_update callback is called by NIC drivers doing hardware offloading of the mirred action. Lastuse is passed as argument to specify when the stats was actually last updated and is not always the current time. Fixes: 9798e6fe4f9b ('net: act_mirred: allow statistic updates from offloaded actions') Signed-off-by: Paul Blakey <paulb@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/act_mirred.c')
-rw-r--r--net/sched/act_mirred.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c
index 667dc382df82..6b07fba5770b 100644
--- a/net/sched/act_mirred.c
+++ b/net/sched/act_mirred.c
@@ -207,8 +207,11 @@ out:
static void tcf_stats_update(struct tc_action *a, u64 bytes, u32 packets,
u64 lastuse)
{
- tcf_lastuse_update(&a->tcfa_tm);
+ struct tcf_mirred *m = to_mirred(a);
+ struct tcf_t *tm = &m->tcf_tm;
+
_bstats_cpu_update(this_cpu_ptr(a->cpu_bstats), bytes, packets);
+ tm->lastuse = lastuse;
}
static int tcf_mirred_dump(struct sk_buff *skb, struct tc_action *a, int bind,