>On Thu, Jul 17, 2014 at 06:56, David Gwynne wrote:
>> CVSROOT:     /cvs
>> Module name: src
>> Changes by:  d...@cvs.openbsd.org    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. :)

Always looking for a way to make buggy code show it's underside.

Reply via email to