Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/kern



-----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-----


Home | Main Index | Thread Index | Old Index