Bug 28927

Summary: IPv6 prefix-discovery code sleeps when it shouldn't
Product: Base System Reporter: wollman <wollman>
Component: kernAssignee: Hajimu UMEMOTO <ume>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.3-STABLE   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description wollman 2001-07-12 22:10:01 UTC
	When acquiring a new prefix from a router, the IPv6 code
	can call malloc(..., M_WAITOK) from interrupt context.
	This causes a crash.  It is clear from the context that
	the code was written to be able to fail gracefully,
	and that it is called from interrupt context, so the
	solution is trivial.

	For some reason, this error only manifested itself when
	I switched from an `fxp' to a `ti' network interface,
	perhaps because the latter takes an inordinate amount
	of time to bring the link up, so that the initial
	router discovery message is never sent and the new
	prefix is only learned through the router's periodic
	broadcasts.

How-To-Repeat: 	Run IPv6 on a Netgear GA620T.  Run a mildly network-intensive
	task and wait for the BOOM!
Comment 1 dwmalone freebsd_committer freebsd_triage 2001-07-13 09:18:58 UTC
Responsible Changed
From-To: freebsd-bugs->ume

Looks like one for ume - It looks like this patch should apply to the 
kame tree aswell as FreeBSD.
Comment 2 Hajimu UMEMOTO freebsd_committer freebsd_triage 2001-07-15 15:25:13 UTC
State Changed
From-To: open->closed

Thank you for your report.  I just committed it with some comment. 

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet6/in6.c.diff?r1=1.13&r2=1.14 

This fix was also applied into KAME repo.