From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KSrmf-0005mH-1u for qemu-devel@nongnu.org; Tue, 12 Aug 2008 07:11:25 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KSrmb-0005lx-NL for qemu-devel@nongnu.org; Tue, 12 Aug 2008 07:11:22 -0400 Received: from [199.232.76.173] (port=48086 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KSrmZ-0005lD-6F for qemu-devel@nongnu.org; Tue, 12 Aug 2008 07:11:19 -0400 Received: from smtp.eu.citrix.com ([62.200.22.115]:42729) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KSrmY-0004F6-JP for qemu-devel@nongnu.org; Tue, 12 Aug 2008 07:11:18 -0400 Received: from samy by implementation.famille.thibault.fr with local (Exim 4.69) (envelope-from ) id 1KSrmV-0002X1-6v for qemu-devel@nongnu.org; Tue, 12 Aug 2008 13:11:15 +0200 Date: Tue, 12 Aug 2008 12:11:15 +0100 From: Samuel Thibault Message-ID: <20080812111115.GF4646@implementation.uk.xensource.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH] fix serial IIR read [Was: SVN Rev 4994 (now) Won't install Windows XP] 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 Brad Campbell, le Tue 12 Aug 2008 11:02:39 +0400, a écrit : > qemu -hda xptest.img -cdrom XP-corp-sp2.iso -boot d -m 256 -no-kqemu > -no-reboot -no-acpi > > It just hangs at "Setup is starting Windows". The patch below fixes it for me. Samuel serial: Always update iir, even when ier is empty. Signed-off-by: Samuel Thibault Index: hw/serial.c =================================================================== --- hw/serial.c (révision 4994) +++ hw/serial.c (copie de travail) @@ -189,11 +189,6 @@ { uint8_t tmp_iir = UART_IIR_NO_INT; - if (!s->ier) { - qemu_irq_lower(s->irq); - return; - } - if ((s->ier & UART_IER_RLSI) && (s->lsr & UART_LSR_INT_ANY)) { tmp_iir = UART_IIR_RLSI; } else if (s->timeout_ipending) {