linux/include/net
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
..
9p
bluetooth Bluetooth: Add defines for SPI and I2C 2016-04-22 15:02:21 +02:00
caif
irda
iucv
netfilter netfilter: nf_tables: reject loops from set element jump to chain 2016-06-15 12:17:23 +02:00
netns Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf 2016-06-01 17:54:19 -07:00
nfc nfc: nci: Add nci_nfcc_loopback to the nci core 2016-05-04 01:48:16 +02:00
phonet
sctp sctp: signal sk_data_ready earlier on data chunks reception 2016-05-01 21:06:10 -04:00
tc_act act_ife: only acquire tcf_lock for existing actions 2016-06-23 12:02:36 -04:00
6lowpan.h
act_api.h mlx5: avoid unused variable warning 2016-05-20 11:23:49 -07:00
addrconf.h
af_ieee802154.h
af_rxrpc.h
af_unix.h
af_vsock.h
ah.h
arp.h
atmclip.h
ax25.h
ax88796.h
bond_3ad.h
bond_alb.h
bond_options.h
bonding.h
busy_poll.h
cfg80211-wext.h
cfg80211.h cfg80211: make wdev_list accessible to drivers 2016-05-12 11:16:40 +02:00
cfg802154.h
checksum.h
cipso_ipv4.h
cls_cgroup.h
codel_impl.h codel: split into multiple files 2016-04-25 16:44:27 -04:00
codel_qdisc.h codel: split into multiple files 2016-04-25 16:44:27 -04:00
codel.h codel: split into multiple files 2016-04-25 16:44:27 -04:00
compat.h packet: compat support for sock_fprog 2016-06-09 23:41:03 -07:00
datalink.h
dcbevent.h
dcbnl.h
devlink.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dn.h
dsa.h dsa: Rename switch chip data to cd 2016-05-11 19:36:28 -04:00
dsfield.h
dst_cache.h
dst_metadata.h
dst_ops.h
dst.h route: move lwtunnel state to a single place 2016-04-25 16:20:09 -04:00
esp.h
ethoc.h
fib_rules.h
firewire.h
flow_dissector.h
flow.h
flowcache.h
fou.h fou: Add encap ops for IPv6 tunnels 2016-05-20 18:03:16 -04:00
fq_impl.h fq: split out backlog update logic 2016-04-28 17:03:38 -04:00
fq.h fq: add fair queuing framework 2016-04-25 16:45:53 -04:00
garp.h
gen_stats.h sched: align nlattr properly when needed 2016-04-26 12:00:49 -04:00
genetlink.h
geneve.h geneve: break dependency with netdev drivers 2016-04-21 15:35:44 -04:00
gre.h gre: fix error handler 2016-06-15 22:15:21 -07:00
gro_cells.h
gtp.h gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U) 2016-05-10 12:25:04 -04:00
gue.h
hwbm.h
icmp.h net: snmp: kill STATS_BH macros 2016-04-27 22:48:25 -04:00
ieee80211_radiotap.h
ieee802154_netdev.h
if_inet6.h
ila.h
inet_common.h ip4ip6: Support for GSO/GRO 2016-05-20 18:03:17 -04:00
inet_connection_sock.h
inet_ecn.h
inet_frag.h
inet_hashtables.h
inet_sock.h
inet_timewait_sock.h
inet6_connection_sock.h
inet6_hashtables.h
inetpeer.h
ip_fib.h
ip_tunnels.h net: Cleanup encap items in ip_tunnels.h 2016-05-20 18:03:16 -04:00
ip_vs.h ipvs: update real-server binding of outgoing connections in SIP-pe 2016-06-06 09:47:25 +09:00
ip.h net: original ingress device index in PKTINFO 2016-05-11 19:31:40 -04:00
ip6_checksum.h
ip6_fib.h
ip6_route.h
ip6_tunnel.h ipv6: hide ip6_encap_hlen/ip6_tnl_encap definitions 2016-05-29 22:24:21 -07:00
ipcomp.h
ipconfig.h
ipv6.h ipv6: add new struct ipcm6_cookie 2016-05-03 16:08:14 -04:00
ipx.h
iw_handler.h
kcm.h
l3mdev.h net: l3mdev: Add hook in ip and ipv6 2016-05-11 19:31:40 -04:00
lapb.h
lib80211.h
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h
llc_pdu.h
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h
llc.h
lwtunnel.h
mac80211.h mac80211: allow software PS-Poll/U-APSD with AP_LINK_PS 2016-05-12 11:16:55 +02:00
mac802154.h
mip6.h
mld.h
mpls_iptunnel.h
mpls.h
mrp.h
ndisc.h
neighbour.h
net_namespace.h
net_ratelimit.h
netevent.h
netlabel.h
netlink.h netlink: kill nla_put_u64() 2016-05-16 13:46:23 -04:00
netprio_cgroup.h
netrom.h
nexthop.h
nl802154.h libnl: nla_put_le64(): align on a 64-bit area 2016-04-23 20:13:24 -04:00
p8022.h
ping.h
pkt_cls.h net: sched: fix tc_should_offload for specific clsact classes 2016-06-07 16:59:53 -07:00
pkt_sched.h net_sched: avoid too many hrtimer_start() calls 2016-05-24 14:49:14 -07:00
protocol.h
psnap.h
raw.h
rawv6.h
red.h
regulatory.h
request_sock.h
rose.h
route.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-04-23 18:51:33 -04:00
rtnetlink.h net: rtnetlink: add linkxstats callbacks and attribute 2016-05-02 22:27:06 -04:00
sch_generic.h net: sched: fix tc_should_offload for specific clsact classes 2016-06-07 16:59:53 -07:00
scm.h
secure_seq.h
slhc_vj.h
snmp.h net: snmp: fix 64bit stats on 32bit arches 2016-04-28 11:49:45 -04:00
sock_reuseport.h
sock.h net: sock: move ->sk_shutdown out of bitfields. 2016-05-20 18:05:32 -04:00
Space.h
stp.h
switchdev.h switchdev: pass pointer to fib_info instead of copy 2016-05-17 13:58:49 -04:00
tcp_states.h
tcp.h net: l3mdev: Add hook in ip and ipv6 2016-05-11 19:31:40 -04:00
timewait_sock.h
transp_v6.h ipv6: add new struct ipcm6_cookie 2016-05-03 16:08:14 -04:00
tso.h
udp_tunnel.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-09 15:59:24 -04:00
udp.h net: snmp: kill STATS_BH macros 2016-04-27 22:48:25 -04:00
udplite.h
vsock_addr.h
vxlan.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-05-04 00:52:29 -04:00
wext.h
wimax.h
x25.h
x25device.h
xfrm.h net: xfrm: kill XFRM_INC_STATS_BH() 2016-04-27 22:48:23 -04:00