Date: Thu, 10 May 2007 20:00:36 +0000 (UTC) From: Robert Watson <rwatson@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern uipc_usrreq.c Message-ID: <200705102000.l4AK0aHa081647@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
rwatson 2007-05-10 20:00:36 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_6)
sys/kern uipc_usrreq.c
Log:
Merge uipc_usrreq.c:1.193 from HEAD to RELENG_6:
Change unp_mtx to supporting recursion, and do not drop the unp_mtx over
sonewconn() in unp_connect(). This avoids a race that occurs due to
v_socket being an uncounted reference, as the lock was being released in
order to call sonewconn(), which otherwise recurses into the UNIX domain
socket code via pru_attach, as well as holding the lock over a sleeping
memory allocation in uipc_attach(). Switch to a non-sleeping memory
allocation during UNIX domain socket attach.
This fix non-ideal in that it requires enabling recursion, but is a much
smaller change than moving to using true references for v_socket. The
reported panic occurs in unp_connect() following the return of
sonewconn().
Update copyright year.
Panic reported by: jhb
Tested by: jhb
Revision Changes Path
1.155.2.22 +5 -13 src/sys/kern/uipc_usrreq.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200705102000.l4AK0aHa081647>
