linux/net/sched
Vlad Buslov 16af606739 net: sched: implement reference counted action release
Implement helper delete function that uses new action ops 'delete', instead
of destroying action directly. This is required so act API could delete
actions by index, without holding any references to action that is being
deleted.

Implement function __tcf_action_put() that releases reference to action and
frees it, if necessary. Refactor action deletion code to use new put
function and not to rely on rtnl lock. Remove rtnl lock assertions that are
no longer needed.

Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-07-08 12:42:29 +09:00
..
act_api.c net: sched: implement reference counted action release 2018-07-08 12:42:29 +09:00
act_bpf.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_connmark.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_csum.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_gact.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_ife.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_ipt.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_meta_mark.c net: remove duplicate includes 2017-12-13 13:18:46 -05:00
act_meta_skbprio.c net sched actions: change IFE modules alias names 2017-10-12 22:13:20 -07:00
act_meta_skbtcindex.c net: remove duplicate includes 2017-12-13 13:18:46 -05:00
act_mirred.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_nat.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_pedit.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_police.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_sample.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_simple.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_skbedit.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_skbmod.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_tunnel_key.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
act_vlan.c net: sched: add 'delete' function to action ops 2018-07-08 12:42:29 +09:00
cls_api.c net: sched: implement reference counted action release 2018-07-08 12:42:29 +09:00
cls_basic.c net_sched: switch to rcu_work 2018-05-24 22:56:15 -04:00
cls_bpf.c net: sched: cls_bpf: implement offload tcf_proto_op 2018-06-26 23:21:33 +09:00
cls_cgroup.c net_sched: switch to rcu_work 2018-05-24 22:56:15 -04:00
cls_flow.c net_sched: switch to rcu_work 2018-05-24 22:56:15 -04:00
cls_flower.c net/sched: flower: Add supprt for matching on QinQ vlan headers 2018-07-07 20:51:53 +09:00
cls_fw.c net_sched: switch to rcu_work 2018-05-24 22:56:15 -04:00
cls_matchall.c net: sched: cls_matchall: implement offload tcf_proto_op 2018-06-26 23:21:33 +09:00
cls_route.c net_sched: switch to rcu_work 2018-05-24 22:56:15 -04:00
cls_rsvp6.c
cls_rsvp.c
cls_rsvp.h net_sched: switch to rcu_work 2018-05-24 22:56:15 -04:00
cls_tcindex.c net_sched: switch to rcu_work 2018-05-24 22:56:15 -04:00
cls_u32.c net: sched: cls_u32: implement offload tcf_proto_op 2018-06-26 23:21:33 +09:00
em_canid.c net: sched: remove tcf_proto from ematch calls 2014-10-06 18:02:32 -04:00
em_cmp.c
em_ipset.c netfilter: x_tables: move hook state into xt_action_param structure 2016-11-03 10:56:21 +01:00
em_ipt.c net: sched: add em_ipt ematch for calling xtables matches 2018-02-21 13:15:33 -05:00
em_meta.c net: convert sock.sk_refcnt from atomic_t to refcount_t 2017-07-01 07:39:08 -07:00
em_nbyte.c net: sched: em_nbyte: don't add the data offset twice 2018-01-24 14:52:40 -05:00
em_text.c net: Remove state argument from skb_find_text() 2015-02-22 15:59:54 -05:00
em_u32.c
ematch.c net: sched: ematch: obtain net pointer from blocks 2017-10-16 21:00:40 +01:00
Kconfig net/sched: Introduce the ETF Qdisc 2018-07-04 22:30:27 +09:00
Makefile net/sched: Introduce the ETF Qdisc 2018-07-04 22:30:27 +09:00
sch_api.c net/sched: Allow creating a Qdisc watchdog with other clocks 2018-07-04 22:30:27 +09:00
sch_atm.c net: sch: api: add extack support in qdisc_create_dflt 2017-12-21 12:32:51 -05:00
sch_blackhole.c net_sched: blackhole: tell upper qdisc about dropped packets 2018-06-17 08:42:33 +09:00
sch_cbq.c net: sch: sch_cbq: add extack support 2017-12-21 12:32:51 -05:00
sch_cbs.c net: sch: sch_cbs: add extack support 2017-12-21 12:32:51 -05:00
sch_choke.c net: sched: sch: add extack for change qdisc ops 2017-12-21 12:32:50 -05:00
sch_codel.c net: sched: sch: add extack for change qdisc ops 2017-12-21 12:32:50 -05:00
sch_drr.c net: sch: sch_drr: add extack support 2017-12-21 12:32:51 -05:00
sch_dsmark.c net: sch: api: add extack support in qdisc_create_dflt 2017-12-21 12:32:51 -05:00
sch_etf.c net/sched: Make etf report drops on error_queue 2018-07-04 22:30:28 +09:00
sch_fifo.c net: sch: api: add extack support in qdisc_create_dflt 2017-12-21 12:32:51 -05:00
sch_fq_codel.c treewide: kvzalloc() -> kvcalloc() 2018-06-12 16:19:22 -07:00
sch_fq.c net_sched: fq: take care of throttled flows before reuse 2018-05-02 16:37:38 -04:00
sch_generic.c net: remove bypassed check in sch_direct_xmit() 2018-05-31 13:26:19 -04:00
sch_gred.c net: sched: sch: add extack for change qdisc ops 2017-12-21 12:32:50 -05:00
sch_hfsc.c net_sched: remove a bogus warning in hfsc 2018-06-23 10:58:46 +09:00
sch_hhf.c treewide: kvzalloc() -> kvcalloc() 2018-06-12 16:19:22 -07:00
sch_htb.c net_sched: remove unused htb drop_list 2018-06-24 16:42:46 +09:00
sch_ingress.c net: sched: allow ingress and clsact qdiscs to share filter blocks 2018-01-17 14:53:57 -05:00
sch_mq.c net: sched: mq: request stats from offloads 2018-05-29 09:49:16 -04:00
sch_mqprio.c net: sch: api: add extack support in qdisc_create_dflt 2017-12-21 12:32:51 -05:00
sch_multiq.c net: sch: api: add extack support in qdisc_create_dflt 2017-12-21 12:32:51 -05:00
sch_netem.c netem: slotting with non-uniform distribution 2018-06-28 22:06:24 +09:00
sch_pie.c net: sched: sch: add extack for change qdisc ops 2017-12-21 12:32:50 -05:00
sch_plug.c net: sched: sch: add extack for change qdisc ops 2017-12-21 12:32:50 -05:00
sch_prio.c net: sch: prio: Add offload ability for grafting a child 2018-02-28 12:06:01 -05:00
sch_qfq.c net: sch: api: add extack support in qdisc_create_dflt 2017-12-21 12:32:51 -05:00
sch_red.c net: sched: red: avoid hashing NULL child 2018-05-18 13:52:32 -04:00
sch_sfb.c net: sch: api: add extack support in qdisc_create_dflt 2017-12-21 12:32:51 -05:00
sch_sfq.c net: sch: api: add extack support in tcf_block_get 2017-12-21 12:32:51 -05:00
sch_tbf.c net: sched: red: avoid hashing NULL child 2018-05-18 13:52:32 -04:00
sch_teql.c net: sched: sch: add extack for init callback 2017-12-21 12:32:50 -05:00