linux/include/net/tc_act
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
..
tc_bpf.h net_sched: act_bpf: remove spinlock in fast path 2015-08-26 11:01:45 -07:00
tc_connmark.h act_connmark: Remember the struct net instead of guessing it. 2015-09-18 21:59:31 +02:00
tc_csum.h net_sched: act: hide struct tcf_common from API 2014-02-12 19:23:32 -05:00
tc_defact.h net_sched: act: hide struct tcf_common from API 2014-02-12 19:23:32 -05:00
tc_gact.h net/sched: Macro instead of CONFIG_NET_CLS_ACT ifdef 2016-03-10 16:24:02 -05:00
tc_ife.h act_ife: only acquire tcf_lock for existing actions 2016-06-23 12:02:36 -04:00
tc_ipt.h net_sched: act: hide struct tcf_common from API 2014-02-12 19:23:32 -05:00
tc_mirred.h net_sched: act_mirred: add helper inlines to access tcf_mirred info 2016-05-04 00:24:27 -07:00
tc_nat.h net_sched: act: hide struct tcf_common from API 2014-02-12 19:23:32 -05:00
tc_pedit.h net_sched: act: hide struct tcf_common from API 2014-02-12 19:23:32 -05:00
tc_skbedit.h net/act_skbedit: Utility functions for mark action 2016-03-10 16:24:02 -05:00
tc_vlan.h tc_vlan: fix type of tcfv_push_vid 2014-11-24 16:12:03 -05:00