Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Sep 2006 16:28:10 GMT
From:      Robert Watson <rwatson@FreeBSD.org>
To:        rwatson@FreeBSD.org, freebsd-bugs@FreeBSD.org, rwatson@FreeBSD.org
Subject:   Re: kern/102752: malloc(M_WAITOK) of "g_bio", forcing M_NOWAIT with non-sleepable locks held
Message-ID:  <200609011628.k81GSAsa029980@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
Synopsis: malloc(M_WAITOK) of "g_bio", forcing M_NOWAIT with non-sleepable locks held

Responsible-Changed-From-To: freebsd-bugs->rwatson
Responsible-Changed-By: rwatson
Responsible-Changed-When: Fri Sep 1 16:26:32 UTC 2006
Responsible-Changed-Why: 
Grab ownership of this PR, since it is of interest to me.  The fix here
is to drop the inpcb lock before going near copyin/copyout, but the
tricky bit is that the connection may change state while the lock is
dropped, so the path from the socket to the inpcb/tcpcb must be
re-evaluated, and the timewait state checked for.  In HEAD this is
easier since the inpcb can't go away, but in -STABLE we need to check
that so_pcb is still non-NULL also, as the connection could have been
reset.

I'll work on a patch for this in the near future.


http://www.freebsd.org/cgi/query-pr.cgi?pr=102752



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609011628.k81GSAsa029980>