-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
On May 5, 2009, at 4:26 PM, 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
That sounds a lot like a problem I'm trying to track down on macppc
for a while now ( and yes, spl*() are inlined )
have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iQEVAwUBSgCmk8pnzkX8Yg2nAQIxowgAl3mwniVq9frjWQn8OvuWJ6Xx0XtJ17Uy
qRypq7KIgdrKIFvMXopSE9tfL7rbJ9vcw4mEFqb3pj6mdNL2eHc4Hdx+Kzu+2hDa
4C0AWpbC3wwyBniLgN4/KkBcIeyPAGTxWv+RObZB7Y6oRXFp0Q/oSJgx8/1P408Z
8kQ0HIfM1sOUMgE6HGcFKkeNLkDxefiXAZxPur5KoGRx5qkc0An2bh3aSwVz9cIQ
QE89C2hU/2wWjheJ0NK8h0l2MH22/IxlfeGE0Krr8Hsjb5Ale8GV0rX2na2dNoDu
KfQ97y3UxkFVdf9Y/IypQ/ZNU4dprajRpzNBVaMmrrK+16IlMDXeoA==
=fxqj
-----END PGP SIGNATURE-----