NetBSD/sys/netinet6
tls 8cc016b4bc Protect calls to pool_put/pool_get that may occur in interrupt context
with spl used to protect other allocations and frees, or datastructure
element insertion and removal, in adjacent code.

It is almost unquestionably the case that some of the spl()/splx() calls
added here are superfluous, but it really seems wrong to see:

	s=splfoo();
	/* frob data structure */
	splx(s);
	pool_put(x);

and if we think we need to protect the first operation, then it is hard
to see why we should not think we need to protect the next.  "Better
safe than sorry".

It is also almost unquestionably the case that I missed some pool
gets/puts from interrupt context with my strategy for finding these
calls; use of PR_NOWAIT is a strong hint that a pool may be used from
interrupt context but many callers in the kernel pass a "can wait/can't
wait" flag down such that my searches might not have found them.  One
notable area that needs to be looked at is pf.

See also:

http://mail-index.netbsd.org/tech-kern/2006/07/19/0003.html
http://mail-index.netbsd.org/tech-kern/2006/07/19/0009.html
2006-10-05 17:35:19 +00:00
..
Makefile
ah.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
ah_aesxcbcmac.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
ah_aesxcbcmac.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
ah_core.c Better support of IPv6 scoped addresses. 2006-01-21 00:15:35 +00:00
ah_input.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
ah_output.c XXX: GCC uninitialized. 2006-05-14 05:30:31 +00:00
dest6.c <netinet6/in6_pcb.h> is not needed. 2006-01-26 20:29:33 +00:00
esp.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
esp_aesctr.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
esp_aesctr.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
esp_core.c fix incomplete initializer 2006-08-30 01:17:09 +00:00
esp_input.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
esp_output.c comment out comparison always false 2006-08-30 01:23:35 +00:00
esp_rijndael.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
esp_rijndael.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
files.ipsec merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
files.netinet6 Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292). 2006-05-05 00:03:21 +00:00
frag6.c <netinet6/in6_pcb.h> is not needed. 2006-01-26 20:29:33 +00:00
icmp6.c Simplify and repair icmp6_input() to stop the kernel from panicking 2006-09-05 16:11:26 +00:00
in6.c Fix typo in comment 2006-09-26 11:55:41 +00:00
in6.h merge FreeBSD timecounters from branch simonb-timecounters 2006-06-07 22:33:33 +00:00
in6_cksum.c PR 32653: mrt@notwork.org: remove 'sum += w[0]' left in previous revision. 2006-01-27 20:08:11 +00:00
in6_gif.c merge FreeBSD timecounters from branch simonb-timecounters 2006-06-07 22:33:33 +00:00
in6_gif.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
in6_ifattach.c Integrate Common Address Redundancy Procotol (CARP) from OpenBSD 2006-05-18 09:05:49 +00:00
in6_ifattach.h NDP-related improvements: 2006-03-05 23:47:08 +00:00
in6_pcb.c Protect calls to pool_put/pool_get that may occur in interrupt context 2006-10-05 17:35:19 +00:00
in6_pcb.h Use the LWP cached credentials where sane. 2006-07-23 22:06:03 +00:00
in6_proto.c add missing initializers 2006-08-30 17:05:30 +00:00
in6_src.c Restore historical kernel behavior: let an application bind(2) an 2006-09-01 01:59:56 +00:00
in6_var.h Use the LWP cached credentials where sane. 2006-07-23 22:06:03 +00:00
ip6_forward.c Fix a minor printf found while reading the code 2006-06-29 16:56:31 +00:00
ip6_id.c Fix initializers. 2006-08-30 17:11:53 +00:00
ip6_input.c Make the mbuf writable before calling in6_clearscope(). Based on patch sent 2006-05-25 21:32:47 +00:00
ip6_mroute.c fix initializers 2006-08-30 17:13:45 +00:00
ip6_mroute.h merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
ip6_output.c remove impossible comparisons. 2006-08-30 17:15:22 +00:00
ip6_var.h Add support for RFC 3542 Adv. Socket API for IPv6 (which obsoletes 2292). 2006-05-05 00:03:21 +00:00
ip6protosw.h gc unused member. 2006-08-27 23:55:16 +00:00
ipcomp.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
ipcomp_core.c remove empty code. 2006-08-30 19:15:05 +00:00
ipcomp_input.c From FreeBSD: 2006-02-14 21:43:02 +00:00
ipcomp_output.c merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
ipsec.c merge FreeBSD timecounters from branch simonb-timecounters 2006-06-07 22:33:33 +00:00
ipsec.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
mld6.c Rename local variables called delay that shadow the delay() decl. 2006-03-06 20:33:52 +00:00
mld6_var.h NDP-related improvements: 2006-03-05 23:47:08 +00:00
nd6.c - fix initializers 2006-09-02 07:22:44 +00:00
nd6.h NDP-related improvements: 2006-03-05 23:47:08 +00:00
nd6_nbr.c fix the dad_count logic: if we send a packet successfully, reset the counter 2006-06-28 16:43:43 +00:00
nd6_rtr.c merge FreeBSD timecounters from branch simonb-timecounters 2006-06-07 22:33:33 +00:00
pim6.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
pim6_var.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
raw_ip6.c Use the LWP cached credentials where sane. 2006-07-23 22:06:03 +00:00
raw_ip6.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
route6.c Better support of IPv6 scoped addresses. 2006-01-21 00:15:35 +00:00
scope6.c comment out impossible comparison. 2006-09-03 05:16:59 +00:00
scope6_var.h Better support of IPv6 scoped addresses. 2006-01-21 00:15:35 +00:00
udp6.h Multiple inclusion protection, as suggested by christos@ on tech-kern@ 2005-12-10 23:31:41 +00:00
udp6_output.c Use the LWP cached credentials where sane. 2006-07-23 22:06:03 +00:00
udp6_usrreq.c Use the LWP cached credentials where sane. 2006-07-23 22:06:03 +00:00
udp6_var.h Use the LWP cached credentials where sane. 2006-07-23 22:06:03 +00:00