freebsd-dev/sys/netinet6
Bjoern A. Zeeb e6950476b9 Plug well observed races on la_hold entries with the callout handler.
Call the handler function with the lock held, return unlocked as we
might free the entry.  Rework functions later in the call graph to be
either called with the lock held or, only if needed, unlocked.

Place asserts to document and tighten assumptions on various lle locking,
which were not always true before.

We call nd6_ns_output() unlocked and the assignment of ip6->ip6_src was
decentralized to minimize possible complexity introduced with the formerly
missing locking there.  This also resulted in a push down of local
variable scopes into smaller blocks.

Reported by:	many
PR:		kern/148857
Submitted by:	Dmitrij Tejblum (tejblum yandex-team.ru) (original version)
MFC After:	4 days
2010-11-29 00:04:08 +00:00
..
dest6.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
frag6.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
icmp6.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
icmp6.h
in6_cksum.c Fix more continuous/contiguous typos (cf. r215955) 2010-11-27 21:51:39 +00:00
in6_gif.c MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
in6_gif.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
in6_ifattach.c MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
in6_ifattach.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
in6_mcast.c Adapt r197136 to IPv6 stack: 2009-11-19 13:39:07 +00:00
in6_pcb.c No need to include security/mac/mac_framework.h here. 2010-02-18 22:30:37 +00:00
in6_pcb.h Make callers to in6_selectsrc() and in6_pcbladdr() pass in memory 2009-06-23 22:08:55 +00:00
in6_proto.c Allow carp(4) to be loaded as a kernel module. Follow precedent set by 2010-08-11 00:51:50 +00:00
in6_rmx.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
in6_src.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
in6_var.h MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
in6.c Plug well observed races on la_hold entries with the callout handler. 2010-11-29 00:04:08 +00:00
in6.h - Rename IP_NONLOCALOK IP socket option to IP_BINDANY, to be more consistent 2009-06-01 10:30:00 +00:00
ip6_ecn.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
ip6_forward.c Virtualize the pfil hooks so that different jails may chose different 2009-10-11 05:59:43 +00:00
ip6_id.c Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
ip6_input.c Fix more continuous/contiguous typos (cf. r215955) 2010-11-27 21:51:39 +00:00
ip6_ipsec.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
ip6_ipsec.h #if 0 out a currently unsued (and incomplete) function: ip6_ipsec_mtu(). 2008-03-14 11:44:30 +00:00
ip6_mroute.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
ip6_mroute.h Switch cmd argument to u_long. This matches what if_ethersubr.c does and 2009-06-21 10:29:31 +00:00
ip6_output.c Fix more continuous/contiguous typos (cf. r215955) 2010-11-27 21:51:39 +00:00
ip6_var.h Fix more continuous/contiguous typos (cf. r215955) 2010-11-27 21:51:39 +00:00
ip6.h
ip6protosw.h Introduce an infrastructure for dismantling vnet instances. 2009-06-08 17:15:40 +00:00
mld6_var.h Use ALLOW_NEW_SOURCES and BLOCK_OLD_SOURCES to signal a join or leave 2009-12-22 20:40:22 +00:00
mld6.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
mld6.h Add MLDv2 protocol header, but do not connect it to the build. 2009-04-29 11:31:23 +00:00
nd6_nbr.c Plug well observed races on la_hold entries with the callout handler. 2010-11-29 00:04:08 +00:00
nd6_rtr.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
nd6.c Plug well observed races on la_hold entries with the callout handler. 2010-11-29 00:04:08 +00:00
nd6.h MFP4: @176978-176982, 176984, 176990-176994, 177441 2010-04-29 11:52:42 +00:00
pim6_var.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
pim6.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
raw_ip6.c optp may be NULL. 2010-08-20 17:52:49 +00:00
raw_ip6.h Remove unused VNET_SET() and related macros; only VNET_GET() is 2009-07-16 21:13:04 +00:00
route6.c Merge the remainder of kern_vimage.c and vimage.h into vnet.c and 2009-08-01 19:26:27 +00:00
scope6_var.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00
scope6.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
sctp6_usrreq.c Remove unused variables. 2010-09-15 20:41:20 +00:00
sctp6_var.h 1) Adds the rest of the VIMAGE change macros 2008-07-09 16:45:30 +00:00
send.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
send.h MFp4: anchie_soc2009 branch: 2010-08-19 11:31:03 +00:00
tcp6_var.h Remove unused VNET_SET() and related macros; only VNET_GET() is 2009-07-16 21:13:04 +00:00
udp6_usrreq.c Add flowtable support to IPv6 2010-05-09 20:32:00 +00:00
udp6_var.h Clean up VCS Ids. 2007-12-10 16:03:40 +00:00