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
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
in6_gif.h
in6_ifattach.c
in6_ifattach.h
in6_mcast.c
in6_pcb.c
in6_pcb.h
in6_proto.c
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
in6.c Plug well observed races on la_hold entries with the callout handler. 2010-11-29 00:04:08 +00:00
in6.h
ip6_ecn.h
ip6_forward.c
ip6_id.c
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
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
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
mld6_var.h
mld6.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
mld6.h
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
pim6_var.h
pim6.h
raw_ip6.c
raw_ip6.h
route6.c
scope6_var.h
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
sctp6_var.h
send.c After some off-list discussion, revert a number of changes to the 2010-11-22 19:32:54 +00:00
send.h
tcp6_var.h
udp6_usrreq.c
udp6_var.h