From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58583) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XiKBd-0007sP-Qr for qemu-devel@nongnu.org; Sun, 26 Oct 2014 05:32:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XiKBX-0002KR-V5 for qemu-devel@nongnu.org; Sun, 26 Oct 2014 05:32:33 -0400 Received: from mout.web.de ([212.227.17.11]:62860) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XiKBX-0002Jl-Lj for qemu-devel@nongnu.org; Sun, 26 Oct 2014 05:32:27 -0400 Message-ID: <544CBFA1.1090108@web.de> Date: Sun, 26 Oct 2014 10:32:17 +0100 From: Jan Kiszka MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="NPXraku91mwEdeL9NVBnCQP26ev4vnBO9" Subject: [Qemu-devel] [PATCH] Make qemu_shutdown_requested signal-safe List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell , qemu-devel Cc: Paolo Bonzini , =?UTF-8?B?QWxleCBCZW5uw6ll?= , Stefan Hajnoczi , Gonglei This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --NPXraku91mwEdeL9NVBnCQP26ev4vnBO9 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable From: Jan Kiszka qemu_shutdown_requested may be interrupted by qemu_system_killed. If the latter sets shutdown_requested after qemu_shutdown_requested has read it but before it was cleared, the shutdown event is lost. Fix this by using atomic_xchg. Signed-off-by: Jan Kiszka --- vl.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/vl.c b/vl.c index 2f81384..f6b3546 100644 --- a/vl.c +++ b/vl.c @@ -1609,9 +1609,7 @@ int qemu_reset_requested_get(void) =20 static int qemu_shutdown_requested(void) { - int r =3D shutdown_requested; - shutdown_requested =3D 0; - return r; + return atomic_xchg(&shutdown_requested, 0); } =20 static void qemu_kill_report(void) --=20 1.8.4.5 --NPXraku91mwEdeL9NVBnCQP26ev4vnBO9 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlRMv6EACgkQitSsb3rl5xTOHwCfcnlu+BFreauT1m4hsj8s6UTF Y4UAnA2Hy1VzfNBcdGLJcGtb6CMEDnii =FiK7 -----END PGP SIGNATURE----- --NPXraku91mwEdeL9NVBnCQP26ev4vnBO9--