On Thu, Jul 17, 2014 at 06:56, David Gwynne wrote:
> CVSROOT:      /cvs
> Module name:  src
> Changes by:   [email protected]    2014/07/17 06:56:07
> 
> Modified files:
> sys/arch/i386/i386: ioapic.c
> 
> Log message:
> interrupt handlers established via the ioapic didnt get their
> ih_flags set. ih_flags are used by the intr_handler() code to
> determine if the kernel lock should be taken or not.
> 
> because the flags werent set, random memory was used instead which
> in turn meant you sometimes didnt have the biglock when running
> interrupt handlers which relied on it. races ahoy.
> 
> this was found by jmatthew@ while helping me try to figure out why
> bnx was blowing up and causing double frees and use after frees.
> turns out bnx was the smoke for this fire.

The smoke happened to start pouring out at this particular instant
because of the commit to subr_poison.c to use inverted deadbeef
patterns, which flipped the MPSAFE flag from off to on.

So blame Theo for making me do that. :)

Reply via email to