Date: Wed, 12 Mar 2003 12:01:47 -0600 (CST) From: Jonathan Lemon <jlemon@flugsvamp.com> To: brandt@fokus.fraunhofer.de, net@freebsd.org Subject: Re: mallocing from if_start Message-ID: <200303121801.h2CI1lmT013659@mail.flugsvamp.com> In-Reply-To: <local.mail.freebsd-net/20030312181454.V641@beagle.fokus.fraunhofer.de>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <local.mail.freebsd-net/20030312181454.V641@beagle.fokus.fraunhofer.de> you write: > >Hi all, > >I was under the impression that the if_start function is NOT called from >an interrupt context, so I should be able to call uma_zalloc_arg(..., >M_WAITOK) there. I get however > >Mar 12 18:12:49 catssrv kernel: malloc() of "en dma maps" with the >following non-sleepablelocks held: >Mar 12 18:12:49 catssrv kernel: exclusive sleep mutex netisr lock r = 0 >(0xc022d9c0) locked @ /usr/src/sys/net/netisr.c:209 > >I'm wrong with my assumption? if_start() can be called from interrupt context from the bridging, fast-forwarding, (and now) direct dispatch codepaths. That being said, the message can be ignored, I'll rework things to use a gate instead of a mutex, although this seems to be catching some hidden bugs. -- Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200303121801.h2CI1lmT013659>