Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/kern
Hi Manuel,
On Tue, May 05, 2009 at 08:26:37PM +0000, Manuel Bouyer wrote:
> Module Name: src
> Committed By: bouyer
> Date: Tue May 5 20:26:36 UTC 2009
>
> Modified Files:
> src/sys/kern: kern_softint.c
>
> Log Message:
> Declare sh_flags volatile.
> Without it, on ports where splhigh() is inline, the compiler will optimise
> the second SOFTINT_PENDING test in softint_schedule(). A dissasembly
> of softint_schedule() with and without the volatile sh_flags confirm this
> on sparc.
> Because of this there is a race that could lead to the softhand_t
> being enqueued twice on si_q, leading to a corrupted queue and
> some handler being SOFTINT_PENDING but never called.
>
> Should fix PR kern/38637
Your change works around a bug with sparc64 or perhaps even gcc. Please
address the root cause instead. Thanks.
Home |
Main Index |
Thread Index |
Old Index