From owner-svn-src-all@FreeBSD.ORG Wed Mar 21 10:07:29 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 54D93106566C; Wed, 21 Mar 2012 10:07:29 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id D78388FC1B; Wed, 21 Mar 2012 10:07:28 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q2LA7NPj011126; Wed, 21 Mar 2012 12:07:23 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5) with ESMTP id q2LA7MJc052114; Wed, 21 Mar 2012 12:07:22 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q2LA7MQp052113; Wed, 21 Mar 2012 12:07:22 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Wed, 21 Mar 2012 12:07:22 +0200 From: Konstantin Belousov To: Jung-uk Kim Message-ID: <20120321100722.GP2358@deviant.kiev.zoral.com.ua> References: <201203202037.q2KKbNfK037014@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="88pBQ1/6ie/nQzMF" Content-Disposition: inline In-Reply-To: <201203202037.q2KKbNfK037014@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r233249 - head/sys/amd64/acpica X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Mar 2012 10:07:29 -0000 --88pBQ1/6ie/nQzMF Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Mar 20, 2012 at 08:37:23PM +0000, Jung-uk Kim wrote: > Author: jkim > Date: Tue Mar 20 20:37:23 2012 > New Revision: 233249 > URL: http://svn.freebsd.org/changeset/base/233249 >=20 > Log: > Fix another witness panic. We cannot enter critical section at all bec= ause > AcpiEnterSleepState() executes (optional) _GTS method since ACPICA 2012= 0215 > (r231844). To evaluate the method, we need malloc(9), which may sleep. You papered over the issue, and not fixed it. If sleep may happen, as it is for malloc, you cannot sleep with interrupts turned off. This would cause a deadlock at best. > =20 > Reported by: bschmidt > MFC after: 3 days >=20 > Modified: > head/sys/amd64/acpica/acpi_wakeup.c >=20 > Modified: head/sys/amd64/acpica/acpi_wakeup.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/amd64/acpica/acpi_wakeup.c Tue Mar 20 19:47:59 2012 (r233248) > +++ head/sys/amd64/acpica/acpi_wakeup.c Tue Mar 20 20:37:23 2012 (r233249) > @@ -223,6 +223,7 @@ acpi_sleep_machdep(struct acpi_softc *sc > #ifdef SMP > cpuset_t wakeup_cpus; > #endif > + register_t rf; > ACPI_STATUS status; > int ret; > =20 > @@ -241,8 +242,8 @@ acpi_sleep_machdep(struct acpi_softc *sc > =20 > AcpiSetFirmwareWakingVector(WAKECODE_PADDR(sc)); > =20 > + rf =3D intr_disable(); > intr_suspend(); > - spinlock_enter(); > =20 > if (savectx(susppcbs[0])) { > ctx_fpusave(suspfpusave[0]); > @@ -299,8 +300,8 @@ out: > #endif > =20 > mca_resume(); > - spinlock_exit(); > intr_resume(); > + intr_restore(rf); > =20 > AcpiSetFirmwareWakingVector(0); > =20 --88pBQ1/6ie/nQzMF Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAk9pqFoACgkQC3+MBN1Mb4hWMgCgt1W53qIxfa42yzVRMHRlddSF HekAoNyBEyh/auaQv2lox1qqikB2az2w =2Yja -----END PGP SIGNATURE----- --88pBQ1/6ie/nQzMF--