Skip site navigation (1)Skip section navigation (2)
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>