Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Jul 2012 13:04:27 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Arnaud Lacombe <lacombar@gmail.com>
Cc:        Dimitry Andric <dim@freebsd.org>, current@freebsd.org
Subject:   Re: panic: _mtx_lock_sleep: recursed on non-recursive mutex em0 @ /usr/src/sys/dev/e1000/if_lem.c:881
Message-ID:  <CAJ-VmomrNdDJKTp8DW5AyffkGEhWvCdu23Q17%2Bm-LnEL-Ujq1g@mail.gmail.com>
In-Reply-To: <CACqU3MVLuf%2BH-ujVhTqod10uWTioeC0eLgM_fgVHUeH22o55Sg@mail.gmail.com>
References:  <20120726154610.GC1587@albert.catwhisker.org> <5012E233.3050007@FreeBSD.org> <CAJ-Vmo=Tgg-sYVB5b1RhP0adCYJLrp%2B4W4nvpN6M6giTnBjw7w@mail.gmail.com> <CACqU3MVLuf%2BH-ujVhTqod10uWTioeC0eLgM_fgVHUeH22o55Sg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 28 July 2012 12:09, Arnaud Lacombe <lacombar@gmail.com> wrote:

> How would a single ATH_LOCK() helps here ? AFAICS, the panic seem to
> be a classical fallout from direct dispatch where you can re-enter the
> driver from the driver itself through the network stack.

Take a look at iwn. It has a single lock - IWN_LOCK() - which it
releases before punting the frame up the stack.



Adrian



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmomrNdDJKTp8DW5AyffkGEhWvCdu23Q17%2Bm-LnEL-Ujq1g>