From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KaJSO-0003ir-8I for qemu-devel@nongnu.org; Mon, 01 Sep 2008 20:09:16 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KaJSN-0003hK-9t for qemu-devel@nongnu.org; Mon, 01 Sep 2008 20:09:15 -0400 Received: from [199.232.76.173] (port=51065 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KaJSN-0003gs-42 for qemu-devel@nongnu.org; Mon, 01 Sep 2008 20:09:15 -0400 Received: from hall.aurel32.net ([91.121.138.14]:49809) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KaJSM-0002yT-HF for qemu-devel@nongnu.org; Mon, 01 Sep 2008 20:09:14 -0400 Received: from aurel32 by hall.aurel32.net with local (Exim 4.63) (envelope-from ) id 1KaJSK-0002m0-S8 for qemu-devel@nongnu.org; Tue, 02 Sep 2008 02:09:13 +0200 Date: Tue, 2 Sep 2008 02:09:12 +0200 From: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH] x86: Fix powerdown for non-ACPI case Message-ID: <20080902000912.GA683@hall.aurel32.net> References: <48BC1262.3040201@siemens.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <48BC1262.3040201@siemens.com> Sender: Aurelien Jarno Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On Mon, Sep 01, 2008 at 06:03:46PM +0200, Jan Kiszka wrote: > Trivial fix for a corner case: system_shutdown on isapc machines causes > qemu to segfaults due to accessing the uninitialized pm_state. Issue a > system shutdown instead. Applied, thanks. > Signed-off-by: Jan Kiszka > --- > hw/acpi.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > Index: b/hw/acpi.c > =================================================================== > --- a/hw/acpi.c > +++ b/hw/acpi.c > @@ -72,7 +72,7 @@ typedef struct PIIX4PMState { > #define SMBHSTDAT1 0x06 > #define SMBBLKDAT 0x07 > > -PIIX4PMState *pm_state; > +static PIIX4PMState *pm_state; > > static uint32_t get_pmtmr(PIIX4PMState *s) > { > @@ -526,7 +526,9 @@ i2c_bus *piix4_pm_init(PCIBus *bus, int > #if defined(TARGET_I386) > void qemu_system_powerdown(void) > { > - if(pm_state->pmen & PWRBTN_EN) { > + if (!pm_state) { > + qemu_system_shutdown_request(); > + } else if (pm_state->pmen & PWRBTN_EN) { > pm_state->pmsts |= PWRBTN_EN; > pm_update_sci(pm_state); > } > > > -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aurel32@debian.org | aurelien@aurel32.net `- people.debian.org/~aurel32 | www.aurel32.net