Eric Dumazet
415787d779
ipv6: frags: fix a lockdep false positive
...
lockdep does not know that the locks used by IPv4 defrag
and IPv6 reassembly units are of different classes.
It complains because of following chains :
1) sch_direct_xmit() (lock txq->_xmit_lock)
dev_hard_start_xmit()
xmit_one()
dev_queue_xmit_nit()
packet_rcv_fanout()
ip_check_defrag()
ip_defrag()
spin_lock() (lock frag queue spinlock)
2) ip6_input_finish()
ipv6_frag_rcv() (lock frag queue spinlock)
ip6_frag_queue()
icmpv6_param_prob() (lock txq->_xmit_lock at some point)
We could add lockdep annotations, but we also can make sure IPv6
calls icmpv6_param_prob() only after the release of the frag queue spinlock,
since this naturally makes frag queue spinlock a leaf in lock hierarchy.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-04-18 23:19:39 -04:00
..
ila
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
netfilter
inet: frags: fix ip6frag_low_thresh boundary
2018-04-04 12:04:59 -04:00
addrconf.c
net/ipv6: Flip FIB entries to fib6_info
2018-04-17 23:41:18 -04:00
addrconf_core.c
addrlabel.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
af_inet6.c
net/ipv6: Make __inet6_bind static
2018-04-17 13:19:22 -04:00
ah6.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2017-11-15 11:56:19 -08:00
anycast.c
net/ipv6: Flip FIB entries to fib6_info
2018-04-17 23:41:18 -04:00
calipso.c
datagram.c
ipv6: add a wrapper for ip6_dst_store() with flowi6 checks
2018-04-04 11:31:57 -04:00
esp6.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-01-17 00:10:42 -05:00
esp6_offload.c
esp: check the NETIF_F_HW_ESP_TX_CSUM bit before segmenting
2018-02-27 10:46:01 +01:00
exthdrs.c
ipv6: Count interface receive statistics on the ingress netdev
2018-04-17 13:39:51 -04:00
exthdrs_core.c
inet: whitespace cleanup
2018-02-28 11:43:28 -05:00
exthdrs_offload.c
fib6_notifier.c
fib6_rules.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
fou6.c
icmp.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
inet6_connection_sock.c
inet6_hashtables.c
inet: Add a 2nd listener hashtable (port+addr)
2017-12-03 10:18:28 -05:00
ip6_checksum.c
udplite: fix partial checksum initialization
2018-02-16 15:57:42 -05:00
ip6_fib.c
net/ipv6: Remove unused code and variables for rt6_info
2018-04-17 23:41:18 -04:00
ip6_flowlabel.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
ip6_gre.c
ip6_gre: better validate user provided tunnel names
2018-04-05 15:16:15 -04:00
ip6_icmp.c
ip6_input.c
ipv6: Count interface receive statistics on the ingress netdev
2018-04-17 13:39:51 -04:00
ip6_offload.c
ip6_offload.h
ip6_output.c
net/ipv6: separate handling of FIB entries from dst based routes
2018-04-17 23:41:17 -04:00
ip6_tunnel.c
ip6_tunnel: better validate user provided tunnel names
2018-04-05 15:16:15 -04:00
ip6_udp_tunnel.c
ip6_vti.c
vti6: better validate user provided tunnel names
2018-04-05 15:16:15 -04:00
ip6mr.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
ipcomp6.c
ipv6_sockglue.c
inet: whitespace cleanup
2018-02-28 11:43:28 -05:00
Kconfig
ipmr,ipmr6: Define a uniform vif_device
2018-03-01 13:13:23 -05:00
Makefile
mcast.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
mcast_snoop.c
mip6.c
ndisc.c
net/ipv6: Flip FIB entries to fib6_info
2018-04-17 23:41:18 -04:00
netfilter.c
netfilter: use skb_to_full_sk in ip6_route_me_harder
2018-02-25 20:51:13 +01:00
output_core.c
net: accept UFO datagrams from tuntap and packet
2017-11-24 01:37:35 +09:00
ping.c
ipv6: allow to cache dst for a connected sk in ip6_sk_dst_lookup_flow()
2018-04-04 11:31:57 -04:00
proc.c
inet: frags: break the 2GB limit for frags storage
2018-03-31 23:25:39 -04:00
protocol.c
raw.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
reassembly.c
ipv6: frags: fix a lockdep false positive
2018-04-18 23:19:39 -04:00
route.c
net/ipv6: Remove unused code and variables for rt6_info
2018-04-17 23:41:18 -04:00
seg6.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
seg6_hmac.c
seg6_iptunnel.c
ipv6: sr: fix seg6 encap performances with TSO enabled
2018-03-30 14:14:33 -04:00
seg6_local.c
net/ipv6: Pass skb to route lookup
2018-03-04 13:04:22 -05:00
sit.c
ipv6: sit: better validate user provided tunnel names
2018-04-05 15:16:15 -04:00
syncookies.c
net/ipv4: disable SMC TCP option with SYN Cookies
2018-03-25 20:53:54 -04:00
sysctl_net_ipv6.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
tcp_ipv6.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
2018-03-31 23:33:04 -04:00
tcpv6_offload.c
gso: validate gso_type in GSO handlers
2018-01-22 16:01:30 -05:00
tunnel6.c
udp.c
ipv6: udp: set dst cache for a connected sk if current not valid
2018-04-04 11:31:57 -04:00
udp_impl.h
udp_offload.c
gso: validate gso_type in GSO handlers
2018-01-22 16:01:30 -05:00
udplite.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00
xfrm6_input.c
xfrm: Reinject transport-mode packets through tasklet
2017-12-19 08:23:21 +01:00
xfrm6_mode_beet.c
xfrm6_mode_ro.c
xfrm6_mode_transport.c
xfrm6_mode_tunnel.c
xfrm: Verify MAC header exists before overwriting eth_hdr(skb)->h_proto
2018-03-07 10:54:29 +01:00
xfrm6_output.c
net: xfrm: use skb_gso_validate_network_len() to check gso sizes
2018-03-04 17:49:17 -05:00
xfrm6_policy.c
net/ipv6: Remove unused code and variables for rt6_info
2018-04-17 23:41:18 -04:00
xfrm6_protocol.c
xfrm6_state.c
inet: whitespace cleanup
2018-02-28 11:43:28 -05:00
xfrm6_tunnel.c
net: Drop pernet_operations::async
2018-03-27 13:18:09 -04:00