remarkable-linux/net/ipv4
WANG Cong 419df12fb5 net: move fib_rules_unregister() under rtnl lock
We have to hold rtnl lock for fib_rules_unregister()
otherwise the following race could happen:

fib_rules_unregister():	fib_nl_delrule():
...				...
...				ops = lookup_rules_ops();
list_del_rcu(&ops->list);
				list_for_each_entry(ops->rules) {
fib_rules_cleanup_ops(ops);	  ...
  list_del_rcu();		  list_del_rcu();
				}

Note, net->rules_mod_lock is actually not needed at all,
either upper layer netns code or rtnl lock guarantees
we are safe.

Cc: Alexander Duyck <alexander.h.duyck@redhat.com>
Cc: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-04-02 20:52:34 -04:00
..
netfilter netfilter: restore rule tracing via nfnetlink_log 2015-03-19 11:14:48 +01:00
af_inet.c net: rfs: add hash collision detection 2015-02-08 16:53:57 -08:00
ah4.c
arp.c
cipso_ipv4.c cipso: don't use IPCB() to locate the CIPSO IP option 2015-02-11 14:46:37 -05:00
datagram.c
devinet.c net: spelling fixes 2015-02-14 20:36:08 -08:00
esp4.c
fib_frontend.c net: move fib_rules_unregister() under rtnl lock 2015-04-02 20:52:34 -04:00
fib_lookup.h fib_trie: Move fib_find_alias to file where it is used 2015-01-25 14:47:16 -08:00
fib_rules.c fib_trie: Push rcu_read_lock/unlock to callers 2014-12-31 18:25:54 -05:00
fib_semantics.c fib_trie: Move fib_find_alias to file where it is used 2015-01-25 14:47:16 -08:00
fib_trie.c fib_trie: Various clean-ups for handling slen 2015-01-25 14:47:16 -08:00
fou.c gue: Use checksum partial with remote checksum offload 2015-02-11 15:12:13 -08:00
geneve.c openvswitch: Add support for checksums on UDP tunnels. 2015-01-28 23:04:15 -08:00
gre_demux.c
gre_offload.c
icmp.c ipv4: icmp: use percpu allocation 2015-01-31 17:48:18 -08:00
igmp.c
inet_connection_sock.c inet: Clean up inet_csk_wait_for_connect() vs. might_sleep() 2015-03-17 15:03:54 -04:00
inet_diag.c inet_diag: fix possible overflow in inet_diag_dump_one_icsk() 2015-03-13 15:54:27 -04:00
inet_fragment.c
inet_hashtables.c
inet_lro.c
inet_timewait_sock.c
inetpeer.c
ip_forward.c xps: must clear sender_cpu before forwarding 2015-03-11 23:51:18 -04:00
ip_fragment.c ipv4: ip_check_defrag should not assume that skb_network_offset is zero 2015-03-05 21:43:48 -05:00
ip_gre.c gre/ipip: use be16 variants of netlink functions 2015-02-08 16:28:06 -08:00
ip_input.c
ip_options.c
ip_output.c udp: only allow UFO for packets from SOCK_DGRAM sockets 2015-03-02 22:19:29 -05:00
ip_sockglue.c ip: fix error queue empty skb handling 2015-03-08 23:01:54 -04:00
ip_tunnel.c tunnels: advertise link netns via netlink 2015-01-19 14:32:03 -05:00
ip_tunnel_core.c
ip_vti.c tunnels: advertise link netns via netlink 2015-01-19 14:32:03 -05:00
ipcomp.c
ipconfig.c net: ipv4: handle DSA enabled master network devices 2015-01-19 15:45:10 -05:00
ipip.c gre/ipip: use be16 variants of netlink functions 2015-02-08 16:28:06 -08:00
ipmr.c net: move fib_rules_unregister() under rtnl lock 2015-04-02 20:52:34 -04:00
Kconfig
Makefile
netfilter.c
ping.c net: ping: Return EAFNOSUPPORT when appropriate. 2015-03-04 15:46:51 -05:00
proc.c tcp: helpers to mitigate ACK loops by rate-limiting out-of-window dupacks 2015-02-08 01:03:12 -08:00
protocol.c
raw.c net: switch memcpy_fromiovec()/memcpy_fromiovecend() users to copy_from_iter() 2015-02-04 01:34:15 -05:00
route.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-02-05 14:33:28 -08:00
syncookies.c
sysctl_net_ipv4.c ipv4: Namespecify TCP PMTU mechanism 2015-02-09 18:45:00 -08:00
tcp.c tcp: align tcp_xmit_size_goal() on tcp_tso_autosize() 2015-03-05 22:31:12 -05:00
tcp_bic.c tcp: stretch ACK fixes prep 2015-01-28 22:18:37 -08:00
tcp_cong.c tcp: fix tcp_cong_avoid_ai() credit accumulation bug with decreases in w 2015-03-11 16:51:51 -04:00
tcp_cubic.c tcp: restore 1.5x per RTT limit to CUBIC cwnd growth in congestion avoidance 2015-03-11 16:51:51 -04:00
tcp_dctcp.c
tcp_diag.c
tcp_fastopen.c tcp: make sure skb is not shared before using skb_get() 2015-02-13 07:11:40 -08:00
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: fix FRTO undo on cumulative ACK of SACKed range 2015-04-02 16:35:58 -04:00
tcp_ipv4.c tcp: prevent fetching dst twice in early demux code 2015-03-23 22:38:24 -04:00
tcp_lp.c
tcp_memcontrol.c memcg: cleanup static keys decrement 2015-02-12 18:54:10 -08:00
tcp_metrics.c netlink: make nlmsg_end() and genlmsg_end() void 2015-01-18 01:03:45 -05:00
tcp_minisocks.c tcp: mitigate ACK loops for connections as tcp_timewait_sock 2015-02-08 01:03:13 -08:00
tcp_offload.c
tcp_output.c tcp: fix tcp fin memory accounting 2015-03-20 13:18:52 -04:00
tcp_probe.c
tcp_scalable.c tcp: stretch ACK fixes prep 2015-01-28 22:18:37 -08:00
tcp_timer.c ipv4: Namespecify TCP PMTU mechanism 2015-02-09 18:45:00 -08:00
tcp_vegas.c
tcp_vegas.h
tcp_veno.c tcp: stretch ACK fixes prep 2015-01-28 22:18:37 -08:00
tcp_westwood.c
tcp_yeah.c tcp: stretch ACK fixes prep 2015-01-28 22:18:37 -08:00
tunnel4.c
udp.c ip: Add offset parameter to ip_cmsg_recv 2015-01-05 22:44:46 -05:00
udp_diag.c udp_diag: Fix socket skipping within chain 2015-01-27 00:02:41 -08:00
udp_impl.h
udp_offload.c udp: Set SKB_GSO_UDP_TUNNEL* in UDP GRO path 2015-02-11 15:12:10 -08:00
udp_tunnel.c udp: Do not require sock in udp_tunnel_xmit_skb 2015-01-24 23:15:40 -08:00
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c xfrm: Fix local error reporting crash with interfamily tunnels 2015-02-09 11:14:17 +01:00
xfrm4_policy.c
xfrm4_protocol.c
xfrm4_state.c
xfrm4_tunnel.c