Message ID | 1514267331-18753-1-git-send-email-roid@mellanox.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series |
|
Related | show |
From: Roi Dayan <roid@mellanox.com> Date: Tue, 26 Dec 2017 07:48:51 +0200 > We need to update lastuse to to the most updated value between what > is already set and the new value. > If HW matching fails, i.e. because of an issue, the stats are not updated > but it could be that software did match and updated lastuse. > > Fixes: 5712bf9c5c30 ("net/sched: act_mirred: Use passed lastuse argument") > Fixes: 9fea47d93bcc ("net/sched: act_gact: Update statistics when offloaded to hardware") > Signed-off-by: Roi Dayan <roid@mellanox.com> > Reviewed-by: Paul Blakey <paulb@mellanox.com> > Acked-by: Jiri Pirko <jiri@mellanox.com> Applied and queued up for -stable.
diff --git a/net/sched/act_gact.c b/net/sched/act_gact.c index e29a48e..a0ac42b 100644 --- a/net/sched/act_gact.c +++ b/net/sched/act_gact.c @@ -159,7 +159,7 @@ static void tcf_gact_stats_update(struct tc_action *a, u64 bytes, u32 packets, if (action == TC_ACT_SHOT) this_cpu_ptr(gact->common.cpu_qstats)->drops += packets; - tm->lastuse = lastuse; + tm->lastuse = max_t(u64, tm->lastuse, lastuse); } static int tcf_gact_dump(struct sk_buff *skb, struct tc_action *a, diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c index 8b3e5938..08b6184 100644 --- a/net/sched/act_mirred.c +++ b/net/sched/act_mirred.c @@ -239,7 +239,7 @@ static void tcf_stats_update(struct tc_action *a, u64 bytes, u32 packets, struct tcf_t *tm = &m->tcf_tm; _bstats_cpu_update(this_cpu_ptr(a->cpu_bstats), bytes, packets); - tm->lastuse = lastuse; + tm->lastuse = max_t(u64, tm->lastuse, lastuse); } static int tcf_mirred_dump(struct sk_buff *skb, struct tc_action *a, int bind,