[#] http://marc.info/?l=openbsd-cvs&m=141091772720161&w=2
openbsd-cvs(obsdave,2) — All
2014-09-17 05:55:07


we should move to calling pool_setipl on every pool though.

dlg

On 17 Sep 2014, at 9:05 am, David Gwynne <dlg@cvs.openbsd.org> wrote:

> CVSROOT: /cvs
> Module name: src
> Changes by: dlg@cvs.openbsd.org 2014/09/16 17:05:34
>
> Modified files:
> sys/kern : subr_pool.c
>
> Log message:
> disable taking the mutex to read pool stats.
>
> some pool users (eg, mbufs and mbuf clusters) protect calls to pools
> with their own locks that operate at high spl levels, rather than
> pool_setipl() to have pools protect themselves.
>
> this means pools mtx_enter doesnt necessarily prevent interrupts
> that will use a pool, so we get code paths that try to mtx_enter
> twice, which blows up.
>
> reported by vlado at bsdbg dot net and matt bettinger
> diagnosed by kettenis@