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 --- |