Date: Tue, 4 Dec 2007 16:26:26 +0000 (GMT) From: Robert Watson <rwatson@FreeBSD.org> To: Dan Lukes <dan@obluda.cz> Cc: freebsd-bugs@FreeBSD.org, FreeBSD-gnats-submit@FreeBSD.org Subject: Re: kern/116034: Giant not owned at /usr/src/sys/netinet/tcp_sack.c:271=tcp_clean_sackreport(tp) Message-ID: <20071204162537.F87930@fledge.watson.org> In-Reply-To: <200709022226.l82MQlSu002155@kulesh.obluda.cz> References: <200709022226.l82MQlSu002155@kulesh.obluda.cz>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 3 Sep 2007, Dan Lukes wrote: > add NET_LOCK_GIANT() / NET_UNLOCK_GIANT() into tcp_drain() unless someone > smarter than me claim that Giant is NOT required here There's actually a slightly more general problem here--could you try this more general patch? I've requested to merge this to 6.3. Robert N M Watson Computer Laboratory University of Cambridge Index: kern_mbuf.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_mbuf.c,v retrieving revision 1.9.2.9 diff -u -r1.9.2.9 kern_mbuf.c --- kern_mbuf.c 11 Feb 2007 03:31:18 -0000 1.9.2.9 +++ kern_mbuf.c 4 Dec 2007 15:53:52 -0000 @@ -550,9 +550,11 @@ WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK | WARN_PANIC, NULL, "mb_reclaim()"); + NET_LOCK_GIANT(); mbstat.m_drain++; for (dp = domains; dp != NULL; dp = dp->dom_next) for (pr = dp->dom_protosw; pr < dp->dom_protoswNPROTOSW; pr++) if (pr->pr_drain != NULL) (*pr->pr_drain)(); + NET_UNLOCK_GIANT(); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071204162537.F87930>