linux/net/sched
WANG Cong 067a7cd06f act_ife: only acquire tcf_lock for existing actions
Alexey reported that we have GFP_KERNEL allocation when
holding the spinlock tcf_lock. Actually we don't have
to take that spinlock for all the cases, especially
for the new one we just create. To modify the existing
actions, we still need this spinlock to make sure
the whole update is atomic.

For net-next, we can get rid of this spinlock because
we already hold the RTNL lock on slow path, and on fast
path we can use RCU to protect the metalist.

Joint work with Jamal.

Reported-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-06-23 12:02:36 -04:00
..
act_api.c net sched actions: bug fix dumping actions directly didnt produce NLMSG_DONE 2016-06-15 14:02:53 -07:00
act_bpf.c bpf: wire in data and data_end for cls_act_bpf 2016-05-06 16:01:54 -04:00
act_connmark.c sched: align nlattr properly when needed 2016-04-26 12:00:49 -04:00
act_csum.c sched: align nlattr properly when needed 2016-04-26 12:00:49 -04:00
act_gact.c net/sched: act_gact: Update statistics when offloaded to hardware 2016-05-16 13:43:50 -04:00
act_ife.c act_ife: only acquire tcf_lock for existing actions 2016-06-23 12:02:36 -04:00
act_ipt.c act_ipt: fix a bind refcnt leak 2016-06-15 12:31:35 -07:00
act_meta_mark.c
act_meta_skbprio.c
act_mirred.c net_sched: close another race condition in tcf_mirred_release() 2016-05-17 12:40:28 -04:00
act_nat.c sched: align nlattr properly when needed 2016-04-26 12:00:49 -04:00
act_pedit.c sched: align nlattr properly when needed 2016-04-26 12:00:49 -04:00
act_police.c act_police: fix a crash during removal 2016-06-07 16:38:59 -07:00
act_simple.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-15 13:32:48 -04:00
act_skbedit.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-15 13:32:48 -04:00
act_vlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-15 13:32:48 -04:00
cls_api.c
cls_basic.c
cls_bpf.c bpf: wire in data and data_end for cls_act_bpf 2016-05-06 16:01:54 -04:00
cls_cgroup.c
cls_flow.c
cls_flower.c net: sched: fix tc_should_offload for specific clsact classes 2016-06-07 16:59:53 -07:00
cls_fw.c
cls_route.c
cls_rsvp6.c
cls_rsvp.c
cls_rsvp.h
cls_tcindex.c
cls_u32.c net: cls_u32: be more strict about skip-sw flag for knodes 2016-06-08 21:43:14 -07:00
em_canid.c
em_cmp.c
em_ipset.c
em_meta.c qdisc: constify meta_type_ops structures 2016-04-14 00:35:30 -04:00
em_nbyte.c
em_text.c
em_u32.c
ematch.c
Kconfig
Makefile
sch_api.c net_sched: avoid too many hrtimer_start() calls 2016-05-24 14:49:14 -07:00
sch_atm.c
sch_blackhole.c
sch_cbq.c
sch_choke.c
sch_codel.c codel: split into multiple files 2016-04-25 16:44:27 -04:00
sch_drr.c sch_drr: update backlog as well 2016-06-03 19:24:04 -04:00
sch_dsmark.c net_sched: dsmark: use qdisc_dequeue_peeked() 2016-03-08 14:35:13 -05:00
sch_fifo.c net_sched: fix pfifo_head_drop behavior vs backlog 2016-06-14 17:17:58 -04:00
sch_fq_codel.c fq_codel: return non zero qlen in class dumps 2016-06-07 16:28:11 -07:00
sch_fq.c
sch_generic.c net_sched: keep backlog updated with qlen 2016-06-06 21:14:29 -04:00
sch_gred.c
sch_hfsc.c sch_hfsc: always keep backlog updated 2016-06-03 19:24:04 -04:00
sch_hhf.c
sch_htb.c htb: call qdisc_root with rcu read lock held 2016-06-15 14:42:46 -07:00
sch_ingress.c net: sched: fix tc_should_offload for specific clsact classes 2016-06-07 16:59:53 -07:00
sch_mq.c
sch_mqprio.c
sch_multiq.c
sch_netem.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-04 00:52:29 -04:00
sch_pie.c
sch_plug.c
sch_prio.c net_sched: prio: insure proper transactional behavior 2016-06-15 12:29:54 -07:00
sch_qfq.c qfq: don't leak skb if kzalloc fails 2016-06-08 22:41:38 -07:00
sch_red.c sch_red: update backlog as well 2016-06-03 19:24:04 -04:00
sch_sfb.c
sch_sfq.c
sch_tbf.c sch_tbf: update backlog as well 2016-06-03 19:24:04 -04:00
sch_teql.c