act_police.c (c95baf12f5077419db01313ab61c2aac007d40cd) act_police.c (4b61d3e8d3daebbde7ec02d593f84248fdf8bec2)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * net/sched/act_police.c Input police filter
4 *
5 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
6 * J Hadi Salim (action changes)
7 */
8

--- 274 unchanged lines hidden (view full) ---

283 struct tcf_police_params *p;
284
285 p = rcu_dereference_protected(police->params, 1);
286 if (p)
287 kfree_rcu(p, rcu);
288}
289
290static void tcf_police_stats_update(struct tc_action *a,
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * net/sched/act_police.c Input police filter
4 *
5 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
6 * J Hadi Salim (action changes)
7 */
8

--- 274 unchanged lines hidden (view full) ---

283 struct tcf_police_params *p;
284
285 p = rcu_dereference_protected(police->params, 1);
286 if (p)
287 kfree_rcu(p, rcu);
288}
289
290static void tcf_police_stats_update(struct tc_action *a,
291 u64 bytes, u32 packets,
291 u64 bytes, u64 packets, u64 drops,
292 u64 lastuse, bool hw)
293{
294 struct tcf_police *police = to_police(a);
295 struct tcf_t *tm = &police->tcf_tm;
296
292 u64 lastuse, bool hw)
293{
294 struct tcf_police *police = to_police(a);
295 struct tcf_t *tm = &police->tcf_tm;
296
297 tcf_action_update_stats(a, bytes, packets, false, hw);
297 tcf_action_update_stats(a, bytes, packets, drops, hw);
298 tm->lastuse = max_t(u64, tm->lastuse, lastuse);
299}
300
301static int tcf_police_dump(struct sk_buff *skb, struct tc_action *a,
302 int bind, int ref)
303{
304 unsigned char *b = skb_tail_pointer(skb);
305 struct tcf_police *police = to_police(a);

--- 108 unchanged lines hidden ---
298 tm->lastuse = max_t(u64, tm->lastuse, lastuse);
299}
300
301static int tcf_police_dump(struct sk_buff *skb, struct tc_action *a,
302 int bind, int ref)
303{
304 unsigned char *b = skb_tail_pointer(skb);
305 struct tcf_police *police = to_police(a);

--- 108 unchanged lines hidden ---